5 new features, 3 improvements, 10 fixes
New features
- Withholding tax on bills: You can now record withholding tax on bill lines and totals, automatically calculating withheld amounts and posting them to designated withholding tax payable accounts.
- Installment payment terms: Payment terms now support installment schedules, enabling you to split invoice and bill totals across multiple scheduled due dates by percentage or fixed amounts.
- Public API invoice delivery: A new
POST /public/v2/invoices/{number}/send/endpoint allows you to send customer invoices with generated PDF attachments directly through the public API. - Numeral customer sync: Customer records can now synchronize between Numeral and DualEntry, automatically matching active customers by exact name within the connected company.
- Revenue subledger tracking: Tasks now includes a revenue subledger task to help you monitor unbatched draft subledger lines across your organization.
- Financial report filtering: General Ledger, Income Statement, and Balance Sheet reports now support filtering by billable status, customer, and project.
- Public API report filters: The public
/general_ledger/and/trial_balance/endpoints now accept optional query filters for company, account, and date ranges. - Large email attachments: Accounting Intelligence now checks attachment sizes before sending emails through Gmail and can deliver files that exceed message limits as secure download links.
- Approval workflows for API updates: Updating customers, vendors, or items through the public API now correctly triggers re-approval workflows when approval rules are active.
- API control rejection errors: The public API now returns
422 Unprocessable Entityresponses with machine-readable error codes when requests violate period locks, approval policies, or segregation of duties. - Outstanding balance calculations: Outstanding balances on customer and vendor records now align with aging reports by factoring in unapplied payments, credits, and journal entries.
- Report drill-down validation: Report drill-downs now identify customer and vendor columns by ID instead of name, preventing query validation errors on records with address-like names.
- Filtered report links: Accounting Intelligence now opens interactive report cards with your requested filters and periods pre-applied rather than directing you to unfiltered pages.
- Default classification retention: Updating accounts or items without specifying default classification line IDs no longer clears existing classification assignments.
- Redundant action prompts: Accounting Intelligence no longer requests duplicate confirmations before running user-requested skills or approved connector actions.
- NetSuite migration imports: Historical NetSuite migrations now reliably import open credit memos, vendor credits, and expense reports that lack line-level expense accounts.
- QuickBooks Online deposit mapping: Migrated deposits and prepayment applications from QuickBooks Online now correctly preserve customer associations on journal entry lines.
- Global data access controls: The global data endpoint now enforces role permissions and company-scoping rules across all returned datasets.
11 new features, 2 improvements, 23 fixes
New features
- Contract overview summaries: The contract overview page now organizes revenue tables, including allocations, invoice summaries, monthly summaries, revenue recognition schedules, and adjustments, into a unified tab panel.
- Accounts receivable prepayments toggle: AR Aging reports now feature an Include prepayments toggle so you can view unapplied customer prepayments alongside open invoices and credits.
- Withholding tax rates: You can now access a dedicated Withholding Tax (WHT) Rates configuration page under Tax Setup.
- Accounting Intelligence connector cards: Accounting Intelligence chat can now prompt integration setup with inline connection cards for third-party tools.
- Account reconciliation requirements: You can now designate balance sheet accounts that require reconciliation and filter the reconciliation list to show only required accounts.
- Public API approval workflows: Creating or updating customers, vendors, items, accounts, and classifications through the public API now triggers organization approval workflows and returns approval status fields.
- Bulk invoice delivery: You can now select multiple invoices in the invoices list to send them in bulk.
- Numeral tax integration: You can now connect Numeral as a tax provider under Integrations to automate sales tax calculations and filings.
- MCP connection filters: You can now filter the MCP connections list by status, and only administrators can access MCP connection audit logs.
- Xero transaction attachments: Migration imports from Xero now retrieve and link supporting document attachments for bills, invoices, and credit notes.
- Task creation from comments: You can now create a task directly from a comment in Tasks (AI & Automation).
- Accounting Intelligence task management: Accounting Intelligence can now list, create, and update tasks in Tasks (AI & Automation).
- Report date pivoting: General Ledger, Income Statement Detail, and Balance Sheet Detail reports now support pivoting data by date.
- Rippling account mappings: Offset account mapping options for Rippling payroll now support additional liability and asset account types rather than only accounts payable accounts.
- Rippling department mappings: Department mappings in the Rippling integration now respect the configured department classification setting during line selection and bulk mapping.
- Fixed assets tables: Fixed Assets list views now render table headers and rows without cutting them off.
- Desktop connector authentication: Authentication flows for third-party connectors initiated in the desktop application now hand back credentials reliably from your external browser.
- Bank Match rule previews: Bank Match rule preview cards now display account names rather than internal account identifiers.
- Dashboard date ranges: The six-month date range preset now populates the toolbar date control on initial load.
- Organization settings layout: The save bar on Organization settings pages now aligns cleanly without overlapping the navigation sidebar.
- Tax supply dates: Invoices and bills under VAT or GST tax regimes now automatically default to the transaction or posting date when a supply date is omitted.
- Bank connection providers: Bank account connections and reconnections now route through configured provider overrides instead of defaulting to Plaid.
- Custom role permissions: Routine system updates no longer overwrite manually customized role permissions.
- Accounting Intelligence confirmation prompts: Responding to Accounting Intelligence confirmation cards and questions now resumes conversations reliably without generating errors.
- Accounting Intelligence bank rules: Bank rules created through Accounting Intelligence now preserve assigned vendors alongside expense accounts.
- Fivetran connector schemas: Schema names for Fivetran connectors now truncate long company names to prevent database identifier length errors during setup.
- Cash sale accounts: The Bank or Credit Card Account field on cash sales now accepts credit card accounts on save.
- Archived transaction balances: Archived transactions no longer retain general ledger impact.
- Trial balance date ranges: Trial balance reports now respect custom start dates rather than defaulting to January 1.
- Pivoted report exports: CSV exports for pivoted reports now preserve the configured pivot layout.
- Balance sheet equity totals: Total equity calculations on balance sheet reports now correctly include net income and retained earnings.
- Accounts receivable aging exports: Excel exports for accounts receivable aging reports now calculate and display subtotals and grand totals correctly for large accounts.
- Connectors page loading: The Connectors page now displays a consistent loading state while data loads.
- Dashboard navigation: Navigating away from the dashboard while it is loading no longer redirects back to the dashboard view.
- Change order contract values: Month drill-down views for contracts now display total contract value for posted change orders rather than showing $0.00.
- Contract allocation empty states: The Allocations tab on contract overviews now displays empty state messages within the table while keeping column headers visible.
11 new features, 12 improvements, 23 fixes
New features
- Elimination currency validation: Bank and credit card accounts on eliminated journal entry lines must now match the transaction currency.
- Data Analytics customer fields: Adds all customer profile fields to the Data Analytics customer data source, including contact details, tax codes, parent and subsidiary relationships, billing and shipping addresses, and payment terms.
- Vendor record merging: You can now merge duplicate vendor records into a single primary vendor.
- Audit Trail actor attribution: Audit Trail records now indicate when actions are performed via MCP or Accounting Intelligence, and include an Actor filter on the Transactions tab.
- Inline report cards in Accounting Intelligence: Accounting Intelligence now renders report cards inline with filter chips, allowing you to open the Report Center with matching filters while preserving your chat session.
- Task comment user mentions: You can now use @ mentions in custom task comments to notify team members.
- Task assignment to Accounting Intelligence: Custom tasks can now be assigned directly to Accounting Intelligence for automated handling.
- Vendor credit reference numbers: Adds an optional Reference Number field to vendor credit creation, edit, and view screens.
- Revenue recognition adjustments sync: Adds a Sync adjustments action to contract overviews to recalculate month-end adjustments without reloading the page.
- Classification default settings: Adds default classification settings under General Preferences to configure automatic classification assignment hierarchy.
- HMRC VAT submission declaration: Submitting a VAT return through Making Tax Digital now requires confirming a legal declaration checkbox, and period dates replace period keys across views.
- Accounting Intelligence custom reports: Accounting Intelligence now supports querying saved custom reports and exporting report data directly to CSV, XLSX, and PDF files.
- Accounts receivable aging prepayments: The accounts receivable aging detail and summary reports now support an optional
include_prepaymentsparameter to include open customer prepayments as of the report date. - Dashboard date ranges: Executive Summary, Cash Management, and Revenue dashboards for new organizations now default to showing the prior six full months plus the current month to date.
- Vendor journal entries widget: Vendor detail records now include a Journal Entries section listing all journal entries associated with the vendor.
- Rich text task descriptions: Custom task forms now support rich text editing in the Description field.
- Bank Match approval badges: The bank account dropdown and tab headers now display count badges for transactions awaiting approval.
- Invoice email tracking: The invoice list now supports filtering by email delivery status and sorting by last emailed date.
- Customer credit reference numbers: Customer credit note PDFs now display the reference number when one is provided.
- Consumed material tracking: The Dimensions drawer on fulfillment, invoice, and cash sale lines now supports tracking consumed counts, dimensions, and excess reasons.
- Customer payment import payment methods: Customer payment bulk imports now support mapping payment methods.
- Revenue recognition contract drill-down: The month drill-down view on revenue recognition contracts now displays change orders and contract terminations.
- Default classifications on records: Customer, vendor, item, and account records now include dedicated Defaults sections for pre-populating classifications.
- Customer portal authentication: Resolves an issue with single sign-on handoffs that prevented you from logging in to the customer portal.
- Export download permissions: Enforces company access controls on CSV and report exports, returning an authorization error when you attempt to download exports containing data for unauthorized companies.
- Locked period validation: Standardizes error codes and HTTP response statuses when you attempt to update records within a locked accounting period.
- QuickBooks Desktop sales tax migration: Fixes an issue where imported US sales tax lines posted as generic item lines instead of dedicated tax lines under the ship-to state nexus.
- Accounting Intelligence amortization schedules: Resolves an issue where Accounting Intelligence could not open or preview amortization schedules for prepaid assets.
- Classification updates: Resolves an issue where submitting an identifier in the request body for
PUT /public/v1/classifications/{id}/could update another organization’s classification. Updates now strictly target the classification specified in the URL path. - Customer prepayment application pagination: Open invoices in customer prepayment applications now paginate 25 records per page to prevent page freezes on accounts with high invoice volume.
- Fixed asset rollforward drill-down: Resolves an issue where drilling into rollforward rows without a dedicated destination link navigated to a
404page. - Revenue recognition related records: Resolves an issue where clicking a company link under Related Records navigated to a
404page instead of opening the details drawer. - Inbox memo copying: Clicking the copy button inside the Memo column now copies the text without opening the record preview drawer.
- Customer payment company dropdown: Resolves an issue where company names were cut off in the company selection dropdown on new customer payments.
- Customer payment currency symbol: Restores the currency symbol in the Payment Amount field on customer payment records.
- Budget action bar contrast: Resolves low-contrast styling on the Copy actuals and Clear data buttons in the budget detail action bar.
- Dashboard currency dropdown: Fixes an issue where currency and company selection menus opened behind dashboard widgets.
- Bank Match reconnect layout: Fixes a layout issue that caused the account reconnect button on the Bank Match page to stretch across the full width.
- Bank Match notification placement: Adjusts success toast positioning on the Bank Match page so notifications no longer cover the Post & Match button.
- Elimination journal entry preview: Elimination preview rows now display the account number, foreign exchange rate, and base currency of the elimination company.
- HMRC VAT accessibility: Resolves contrast, ARIA role, and page title issues on HMRC VAT screens to meet WCAG 2.1 AA standards.
- Scheduled agent banner background: Resolves an issue where scrolled chat messages showed through translucent run status banners.
- Accounting Intelligence preview sizing: Fixes an issue where rejected email and Slack preview messages rendered outside the activity panel.
- Connector management permissions: Disables configuration actions on the Connectors page for users without administrator privileges.
- Inbox transaction drawer recovery: Displays a retry option when an inbox transaction drawer fails to load rather than encountering an unhandled error.
- Currency listing alignment: Resolves an issue where the status cell in the currencies table was not vertically centered.
3 new features, 4 improvements, 14 fixes
New features
- Vendor record merging: You can now merge duplicate vendor records into a primary vendor to consolidate transaction history.
- Bulk invoice sending: You can now send multiple invoices simultaneously and monitor delivery using new email status filters and sorting.
- Public reporting API: New public API endpoints provide paginated access to general ledger transactions, trial balances, charts of accounts, and consolidated exchange rates.
- Vendor credit reference numbers: Vendor credits now include an optional Reference Number field to record external vendor credit identifiers.
- Payment method mapping for customer payments: Bulk customer payment imports now support mapping payment method names directly to your organization’s payment methods.
- User avatars in tasks: Tasks now display user avatars and full names for assignees and mentioned team members in task descriptions.
- Expanded Data Analytics account fields: The accounts data source in Data Analytics now includes additional account attributes, such as category, normal balance, statement type, and account hierarchy.
- Aging report Excel export: Large Accounts Receivable aging exports in Excel no longer exceed formula limits or display subtotals and grand totals as zero.
- Accounting Intelligence draft memos: Draft invoices generated by Accounting Intelligence now save successfully when line memos are omitted.
- Accounting Intelligence record context: Accounting Intelligence now retains the context of the open record when processing initial requests from record pages.
- QuickBooks Desktop migration payments: Imported payments linked to journal entries or checks no longer remain open as unapplied overpayments.
- QuickBooks Desktop sales tax import: QuickBooks Desktop data migrations now import sales tax amounts as dedicated tax lines rather than standard line items.
- Public API bill validation: The public API now correctly enforces required company and vendor fields when creating or updating bills.
- Change order billing cadence: New change orders now correctly inherit billing cadence defaults configured during contract creation.
- Integrations page performance: The Integrations page now loads faster when retrieving connected integration records.
- Accounting Intelligence action confirmation: Accounting Intelligence now displays a confirmation card before updating, archiving, or approving records.
- Accounting Intelligence record identifiers: Accounting Intelligence now correctly resolves revenue contracts and fixed assets from reference numbers on record pages.
- Accounting Intelligence message streaming: Live responses from Accounting Intelligence no longer fail with
404errors during message streaming. - Account number length validation: Account numbers now validate against your organization’s configured maximum digit length during account creation and import.
- Bill.com sync performance: The Bill.com integration now skips unchanged bills and attachments during synchronization, improving sync speeds.
- NetSuite invoice import: NetSuite migrations now accept invoices with negative line item quantities by adjusting unit rates, preventing import failures on related payments.
3 new features, 2 improvements, 7 fixes
New features
- Mentions in Tasks: You can now tag team members using mentions in task descriptions and comments to collaborate directly within Tasks.
- Default classifications on expense records: Purchase orders, bills, direct expenses, vendor credits, and fixed assets now automatically inherit default classifications from associated vendors, items, and accounts when tags are omitted.
- Scheduled integration requests: Scheduled Accounting Intelligence workflows that require a missing or disconnected connector now pause to request authorization rather than failing.
- Stripe card payments: You can now accept credit and debit card payments through Stripe Connect, securely vault card details, and configure payment links to save cards for future charges.
- Network tokens for saved cards: Saved customer cards now automatically provision network tokens, helping reduce payment declines and improve authorization rates.
- Reporting currency in flux analysis: Income statement and balance sheet flux comparisons now convert current, prior, and variance amounts to the selected reporting currency.
- Fixed asset rollforward calculations: Beginning net book value now excludes in-period asset purchases, and drilling into rollforward figures opens the Fixed Asset Register without errors.
- Elimination journal entry exchange rates: Intercompany elimination entries now calculate currency amounts using the elimination company’s exchange rate instead of copying source rates directly.
- Xero tax account mapping: Invoice tax synced from Xero now posts to the mapped Sales Tax Payable account instead of defaulting to a synthetic tax liability account.
- Intercompany journal entry validation: Public API endpoints now reject customer and vendor identifiers from outside the acting organization on intercompany journal entries.
- Contract usage drawdowns: Updating or archiving usage line items on contracts with usage drawdowns no longer causes an error.
- Invoice modification timestamps: Editing an invoice or updating its workflow status now refreshes the record’s last-updated timestamp.
9 new features, 5 improvements, 18 fixes
New features
- Contract monthly summaries: The contract overview now features a monthly summary table with locked and pending status indicators, alongside drill-downs for invoices, credits, revenue recognition entries, and contract adjustments.
- Report navigation and filters: GST/HST return summaries now link directly to the Detail Report with preserved filters, and the Transactions tab includes an open items filter toggle.
- Math expressions in amount fields: Payment forms and allocation schedule lines now evaluate arithmetic expressions and shorthand values directly in amount inputs.
- Anrok customer sync: You can now sync and map Anrok customer records to ensure tax exemption certificates apply automatically during tax calculations.
- Data Analytics classification columns: Data Analytics now provides dedicated columns for each user classification tree across general ledger entries, invoice lines, bill lines, customers, and vendors.
- Accounting Intelligence report analysis: Accounting Intelligence can now answer period-over-period and budget-versus-actual questions and follow up on previously generated reports. It also provides cards to view the underlying transactions in Report Center.
- Flux analysis AI explanations: AI-generated flux explanations now incorporate key variance drivers, large transactions, and materiality thresholds directly from analysis results.
- Contract API timestamps: The
/public/v2/contracts/endpoint now supportsupdated_afterandupdated_beforequery filters for incremental sync, and contract responses includecreated_atandupdated_attimestamps. - Scheduled agent write approvals: Scheduled agents running in dedicated sessions now pause for review with interactive approval cards before executing write actions.
- Invoice email tracking: You can now display email delivery status, last emailed timestamp, and related tracking fields in the invoice list table through the column picker.
- Line-item custom fields: Bills and other transactions now support custom text and date fields at the line-item level.
- Scheduled agent run states: Scheduled agents now display real-time run statuses and auto-pause indicators across agent lists, the sidebar, the run drawer, and the Tasks board.
- Custom task timeline: Custom tasks now include an activity timeline that supports user comments.
- QuickBooks migration mappings: Migration workflows now support mapping zero-cash credit applications directly as customer or vendor payments, and can automatically assign missing invoice associations to parent customers.
- Accounting Intelligence display: Cards no longer overflow the side pane in bulk workflows, and skill chips no longer flash during composer handoffs.
- Bank match row duplication: Matched transactions no longer appear as duplicate rows in the Bank Match pane.
- Reconciliation transaction view: Reconciliation now loads the underlying transaction list instead of only account summaries.
- Revenue recognition posting: The batch posting page for revenue recognition no longer loads as a blank screen.
- Sales order memo saving: Saving a sales order with keyboard shortcuts immediately after typing no longer discards recent memo edits.
- Contract unbilled account confirmation: A confirmation prompt now appears before you change the unbilled account on contracts that include adjustments.
- Invoice waterfall report: Inactive contracts no longer appear on the invoice waterfall report.
- Payment import mapping: Payment imports no longer encounter an upload error that blocks mapping creation.
- Amount filter display: Transaction list filters no longer clip the maximum amount input.
- Customer statement badges: Status badges now render correctly on customer statements.
- Financial report export totals: Excel and PDF exports for the Balance Sheet and Trial Balance now calculate summary totals using the final period balance instead of incorrectly summing cumulative period columns.
- Contract change order defaults: Creating a change order now applies default values for billing and revenue recognition intervals and frequencies, aligning with standard contract creation.
- Elimination entry record numbers: Journal entry elimination and reversal rows now retain their source record numbers, customers, and vendors on detail reports and Data Analytics views.
- QuickBooks bill tax mapping: Imported bills from QuickBooks now properly associate taxes with individual line items and tax codes, avoiding incorrect reallocations to general tax asset accounts.
- NetSuite tax import: NetSuite bill and invoice imports now accurately map line-level VAT and GST rates and calculate appropriate net amounts.
- Accounting Intelligence permissions: Accounting Intelligence now checks user permissions before creating recurring journal entry schedules or modifying record attachments.
- Accounting Intelligence card approvals: Approving an expired action card now alerts you that the pause cannot be resumed and starts a new turn without losing entered text.
- Global search permissions: Global search results now enforce company access restrictions and exclude records from unauthorized entities.
7 new features, 11 improvements, 24 fixes
New features
- Custom fields on bill lines: You can now add custom fields at the line level on vendor bills, in addition to the bill header.
- Default classifications on customer transactions: Sales orders, invoices, cash sales, customer credits, and contracts now automatically inherit default classifications configured on the customer and item when line classifications are omitted.
- Curaçao VAT support: DualEntry now supports standard (6%), increased (7% and 9%), zero-rated, exempt, and reverse-charge VAT rates for Curaçao.
- External tool connectors in Accounting Intelligence: Accounting Intelligence now alerts you when a requested action needs an external tool connector that is disconnected or not yet installed, with a link to set it up. Approval prompts for external tools also include an option to always allow the action, so later runs don’t prompt again.
- Adjusting entries configuration and reporting: Adjusting entries are now configured in General Preferences with company scoping, and reports include dedicated settings tabs to filter or highlight adjusting entries.
- Assignee filter in Tasks: The assignee selector in Tasks is now integrated directly into the list filters.
- Money out keyboard shortcuts: You can now use keyboard shortcuts to create and navigate purchase orders, vendor payments, and vendor prepayment applications.
- Specialist agents in Accounting Intelligence: Accounting Intelligence now routes every Report Center report to a dedicated reporting agent for more accurate answers. The reporting agent covers EBITDA and D&A, sales reports, ARR by contract, tax, ownership, the fixed-asset register and rollforward, and flux. A new integrations specialist troubleshoots sync failures, explains why records did not sync, compares records with source systems, and retries syncs.
- Faster aging reports: Aging reports now load faster by only querying the columns, groupings, and filters you actually select.
- Snowflake financial report exports: The Snowflake integration now supports opt-in exports for core financial reports, including the Chart of Accounts, General Ledger, Trial Balance, and consolidated exchange rates.
- Open balance filtering on transaction lists: Customer and vendor transaction lists now support filtering by remaining amount, allowing you to isolate open or partially applied records.
- Audit columns in Data Analytics: The general ledger dataset in Data Analytics now includes audit columns for creator, approver, and last-modified timestamps.
- Brex discount line support: The Brex integration now supports syncing transactions that contain discount lines.
- Date preset names on report date chips: Report date chips now display the name of the active date preset, such as Year to Date, rather than static dates, making rolling date ranges clear.
- Contract monthly summary status indicators: Closed accounting periods in the contract monthly summary now display a lock icon, and open months without posted adjustments display as pending.
- Active record context in Accounting Intelligence: Accounting Intelligence now reads the display identifier directly from the active record header, such as journal entry or invoice codes, when answering questions about the current page.
- Peppol e-invoicing for Sweden and Germany: E-invoicing now supports filing Swedish invoices through Peppol BIS Billing 3.0 and German invoices as XRechnung, with shared Peppol participant IDs across supported countries.
- Quote management and approval workflows: Quote management now includes dedicated quote approval pages, customizable quote sending settings, and frequency and service period overrides on quote lines. Quotes also support bucketed totals summaries, grouped PDF exports, and revision history.
- Brex transfer syncs no longer loop: Multi-currency Brex transfer expenses no longer re-sync repeatedly because of a mismatched exchange rate.
- Balance sheet equity now includes retained earnings and net income: Custom Balance Sheet reports previously omitted Retained Earnings and Net Income from the Equity section, causing Total Liabilities and Equity to not match Total Assets. Both amounts now roll into their parent correctly.
- CSV exports with pivots keep their layout: Summary report CSV exports with pivot columns no longer lose their row structure or column headers. Exports now match the layout shown on screen.
- Cash sales accept credit card accounts: Saving a cash sale with a credit card account selected in the bank or credit card account field no longer fails.
- Archived bills from Ramp no longer show GL impact: Bills archived through the Ramp integration now correctly remove their GL impact, even when a bill has more than one transaction.
- Xero sync fixes: The Xero integration no longer disconnects unexpectedly with an
Integration is not connectederror. Xero syncs now also import all document allocations, including credit notes and prepayments applied to invoices or bills, and calculate realized foreign exchange gains and losses. - Cross-company visibility in global search: Global search now enforces company permissions across all record types. Users with restricted company access no longer see records from companies they can’t access.
- Archived records clear pending approval tasks: Archiving a record with an active approval workflow now cancels the workflow and updates the pending approval count in Tasks.
- Bank Match fixes: Background suggestion jobs that time out now exit cleanly and keep previously matched suggestions. Saving a Bank Match rule is also no longer blocked after you cancel an intermediate step.
- HubSpot sync rate limiting: HubSpot syncs now automatically retry with backoff when receiving rate limit responses rather than failing the sync.
- QuickBooks Desktop migration fixes: Invoices migrated from QuickBooks Desktop now keep their ship-to addresses, so sales tax calculates correctly. Credit memos applied to invoices now import as payments, reducing open customer and invoice balances.
- Xero contact classification during migration: Migrations from Xero now use contact flags to prevent vendors from being created as customers, and import money received from vendors as journal entries.
- QuickBooks Online unapplied payments migration: Re-migrating unapplied customer payments from QuickBooks Online now preserves and relinks existing customer deposits.
- Immediate form saving: Saving a form immediately after typing, using either keyboard shortcuts or the Save button, now flushes pending inputs and saves the updated values.
- Journal entry display fixes: The classifications button and column header on intercompany journal entry lines are now centered, and opening journal entry details renders the loading skeleton without layout errors.
- Revenue recognition batch posting display: The revenue recognition batch posting page no longer renders blank when opening the posting form.
- Bulk import mapping error messages: Bulk imports now display specific server error messages when column mapping creation fails.
- Reconciliation fixes: Account reconciliation transaction rows now stay visible and scrollable on shorter screens, and new account reconciliations correctly populate the default company.
- Skill page navigation after editing: Editing a skill in Accounting Intelligence no longer causes the page to display a
Not Founderror. - Contract termination with paid invoices: Terminating a contract is no longer blocked when the contract already contains paid invoices.
- Company filter results in Close Management: The company filter now accurately filters and displays records across Close Management views.
- Customer prepayment applications filter layout: Filter buttons and counts on Customer Prepayment Applications no longer overlap or wrap incorrectly when filters are applied.
- Customer deposit page performance: Customer deposits no longer lag when you open or edit them.
- 1099 report generation error handling: Generating 1099 reports now handles
422validation errors, preventing report creation from failing silently.
7 new features, 10 improvements, 17 fixes
New features
- Anrok tax integration: DualEntry now pushes posted sales documents to Anrok, including updates, voids, and refunds.
- Kintsugi tax integration: DualEntry syncs your Kintsugi product catalog and maps products to items.
- HMRC integration improvements: Further improvements to the HMRC VAT filing connection following production credential approval.
- Reconciliation summary for view-only users: View-only users can now see a summary of the items selected in a reconciliation.
- Hierarchical default classifications: Classification defaults can now resolve from a configurable hierarchy of sources (customer or vendor, item, and account), merging values and flagging conflicts.
- More Data Analytics GL Entries columns: Added line memo, offset account, reference number, and check number columns to the GL Entries data source.
- Date format resolution: In-app dates now resolve from your personal date format, then your organization’s date format, then your locale, in that order.
- Connector cards in chat: Accounting Intelligence chat now shows live connection status for connectors and lets you complete OAuth sign-in directly from the chat card.
- Contract obligation tabs and overview metrics: Contract usage and milestone obligations now show in dedicated Usage and Milestone tabs, each with its own add, filter, and action controls. Contract overview pages also show a monthly summary table and a contract asset metric.
- Unbilled account change confirmation: Changing the unbilled account on a contract with month-end adjustments now shows a confirmation before saving, and syncs open months after the change.
- Scheduled agent status and controls: The scheduled agents sidebar now shows each agent’s run status, and you can configure pause behavior directly in the UI. A toast appears when a manually triggered run finishes, and the read-only agent drawer has an updated layout with a clickable version badge and a Run Now action in the footer.
- Custom task timeline and preparer filter: Custom tasks now have a timeline that includes comments, and the task preparer filter now lives in the general filter selector instead of a separate control.
- Multiple item prices: Items now support multiple list prices, one per currency.
- Bank transfer exchange rate override: Bank transfers now support a per-account exchange rate override for the sending and receiving accounts.
- Slack and email confirmation cards: Accounting Intelligence chat now shows dedicated confirmation cards, with connector logos, when you approve a Slack or email message.
- E-invoicing filing corrections: The invoice filing tab now shows an edit link and correction links when the integration reports available corrections, so you can fix the record and retry the filing.
- Anrok tax calculation logs: Anrok document pushes now appear in the tax calculation logs, and the Anrok audit actor shows as “Anrok” instead of its domain.
- Xero sync: Fixed five Xero document types, including prepayments, overpayments, and refunds, that previously failed to sync.
- QuickBooks Online tax on discounted documents: Fixed GST and QST tax being dropped on QuickBooks Online invoices and credit memos that include a discount line.
- Classification validation: DualEntry now rejects more than one classification line of the same type on items, accounts, and transaction lines.
- Date format setting: Fixed the user and organization date format setting to return correctly as unset instead of a default value.
- Browser crash on date format updates: Fixed a browser crash caused by frequent date format change notifications.
- Bank transfer layout on narrow screens: Fixed the bank transfer sending, exchange rate, and receiving cards overlapping on narrow screens; they now stack instead.
- Report contract status filter: Fixed contract status filters on reports not applying because of a mismatched parameter name.
- Filter layout: Fixed the amount filter overflowing its container and the filter count wrapping onto its own line next to the filter icon.
- E-invoicing settings and status: Fixed the Companies and Event log tabs disappearing from e-invoicing settings. The e-invoicing company list also now shows “Status unavailable” instead of “Decision required” for unrecognized decision values.
- Accounting Intelligence chat display: Fixed the docked composer briefly flashing a skill chip after you send a message, and generated file cards overflowing the floating chat panel. Exported spreadsheet files now show an Excel icon instead of a generic file icon, and a long memo value in a chat result table no longer pushes other columns out of view.
- Badge display: Fixed a broken badge on customer statements and an oversized badge on integration mapping pages.
- Recover as draft: Fixed the Recover as Draft action missing from allocation journal list recover flows.
- Contract template delete: Fixed deleting a contract template from the list opening the template’s detail page instead of staying on the list.
- Integration ID copy: Fixed copying an integration ID not working.
- Formula editor accessibility: Fixed screen readers not announcing the Insert menu correctly in the formula row and formula column drawers.
- Reconciliation overview company picker: Fixed selecting a second company on the Reconciliations Overview tab not updating the displayed rows.
- Audit actor naming: Audit entries created by Accounting Intelligence now read “via Accounting Intelligence” instead of “via Copilot”.
6 new features, 9 improvements, 7 fixes
New features
- E-invoicing status tracking: Invoices and customer credits with a filing now show an E-invoicing tab with a three-step progress bar (Prepared, Sent, Confirmed), an activity timeline, and filing details such as country, authority, and references. The registration drawer also warns you when e-invoicing is not yet enabled for a company and country pair. Identity fields now show guidance for filling them in correctly.
- Unbilled receivables account setup: You can now set a default unbilled receivables account in company settings and on individual contracts, with a prompt to create one if none exists.
- Terminate stays available on integration-locked contracts: Contracts locked by an integration (for example, a HubSpot deal) now keep the Terminate action available in the More actions menu. Duplicate, archive, recover, import, and change order remain disabled.
- Tax rate display on custom templates: Custom accounting templates now display the tax rate.
- Ratio presets for period-based pricing splits: The period-based pricing split timeline on contracts now offers ratio presets to speed up setting up a split.
- Audit trail for elimination toggles: Turning elimination on or off for a company now records an entry in the audit trail.
- Transactions tab on customer and vendor records: Customer and vendor records now have a Transactions tab that lists all of a party’s transactions with filtering, sorting, column reordering, CSV/XLSX export, and saved views.
- Recent exports from the report Export menu: The Export menu on reports now includes a “Recent exports” option that opens the Exports window to show earlier exports without starting a new one.
- Default classifications on the chart of accounts: The chart of accounts now supports default classifications for accounts.
- Reconciliation company defaults: Starting a reconciliation from the table’s Reconcile action now defaults the company to the account’s company or the single filtered company. The New Reconciliation button defaults to the single filtered company.
- Bank match card editing: Bank Match cards now have a Done button that validates the card before closing, and Cancel restores the card’s previous values instead of keeping unsaved edits.
- Yapily bank connection consent prompts: Bank connection tiles now show a region-specific prompt when a Yapily consent expires. The UK extend action is now a clear “Accept” button that only runs after you confirm.
- Invoice date filter on posted invoices: The billable lines view for posted invoices now includes a filter by invoice date.
- Editable short code on company edit: The company edit page now includes an editable short code field.
- Recurring journal entry templates inherit elimination: Journal entries generated from a recurring template now inherit the template’s elimination setting.
- Bank reconciliation difference on checked transactions: Checking a transaction in Bank Reconciliation no longer reverts the Reconciliation Difference while the checkbox stays checked.
- 1099 generation errors: Generating a 1099 for a year with no template now shows an error message instead of silently saving the error as a CSV file.
- Create New button in company details: The Create New button in the Company Details drawer now works correctly.
- Dialog scrolling: Dialog bodies now show scroll fades so you can tell when there’s more content to scroll through.
- Checklist task icons: Task type icons in checklists no longer show extra strokes, and the Create button now extends to the footer edge.
- Payment tab table size: The payment tab table no longer renders at an incorrect size.
- Activity refresh after save: Saving a record now refreshes its activity timeline immediately, without reloading the page.
3 new features, 6 improvements, 12 fixes
New features
- Pivot by date on reports: The General Ledger, Income Statement Detail, and Balance Sheet Detail reports now support pivoting by year, quarter, or month.
- Ratio presets for period splits: When splitting a contract period, you can now pick a common ratio (such as 1:1, 1:2, or 2:3) instead of only dragging handles.
- Optional non-deductible account on VAT rates: A VAT rate’s non-deduction rate can now be left blank. When it is, the non-deductible account on a bill inherits from the expense line.
- Customer classification on AR Aging: AR Aging now has a Customer Classification filter and column, matching the existing Vendor Classification support on AP Aging.
- Adjusting entries: You can mark a GL journal entry as an adjusting entry on a per-company basis. Reports can show adjusting entries excluded, mixed into the period, in an additional period, or alone, and drill-downs follow the selected mode. Users with the right permission can post an adjusting entry into a locked period.
- Search and sort on AR dunning: The AR dunning list now supports search and column sorting.
- Sortable billable expenses columns: The Billable Expenses list view columns are now sortable.
- Purchase order expenses: Purchase orders now have an Expenses tab showing billed and remaining amounts per line, with a vendor default account.
- Vendor and customer creation from the entity picker: You can now open the vendor or customer creation form directly from the entity select drawer.
- Amortization status after stopping: The amortization list now shows the correct status immediately after you use “Stop going forward,” instead of showing the previous status.
- Allocation schedule destination companies: The destination company picker in allocation schedules no longer limits results to companies that share the source company’s base currency.
- Bank Match crash on malformed data: Bank Match no longer crashes when a transaction response is malformed or missing items.
- Bank Match column rendering: Transaction details in the Bank Statement and DualEntry Transaction columns no longer render garbled or overlapping text.
- Approval policy company count: Bills approval policies now show the correct assigned company count, and “Manage Assignment” responds correctly instead of appearing unresponsive.
- Approval policy modal dismissal: You can now close or cancel the approval policy setup modal using the close button, Escape key, or an outside click before saving.
- Reconciliation data after save: Reopening a reconciliation for edits right after saving now shows the correct, up-to-date rows instead of stale data.
- Invoice PDF line descriptions: Line item descriptions on invoice PDFs no longer change after you edit an item.
- Custom report group drag and drop: Dragging a group to a new position in a custom report no longer causes it to disappear after saving and running the report.
- Report package Notify User display: The Notify User field in Report Package details and edit views now shows the user’s name instead of a raw user ID.
- Report schedule time display: Report package schedule summaries now show the correct time instead of converting it to the wrong time zone.
- General Ledger report for large organizations: The General Ledger report now loads correctly for organizations with very large transaction volumes.
2 new features, 7 improvements, 16 fixes
New features
- Editable tax rate end dates: The effective end date on VAT and GST rates, including system rates, is now editable from the edit drawer.
- Dashboard company filter: The “Active companies only” toggle now lives inside the company selector rather than as a separate toolbar control.
- Bank Match exclusions: Bank Match rules now support excluding specific bank accounts, giving you finer control over which accounts a rule applies to.
- Remaining amount on vendor and customer widgets: Vendor bill, vendor credit, and customer invoice detail widgets now show a remaining amount column, matching the existing customer credits widget.
- Bank connection reconsent and logos: EU bank connections show a reconsent button when a connection needs renewed consent, and newly connected SFTP banks now display their logo automatically.
- US Sales Tax report improvements: The US Sales Tax detail report adds a Customer’s Tax Status column, sorts rows by company by default, and opens pre-filtered by country, company, and state.
- Data Analytics report previews: Hovering over a report name in Data Analytics now shows a preview of its first 10 rows and 3 columns. Report results also stay visible while you adjust filters or grouping instead of disappearing during reruns, grouped reports load additional groups as you scroll, and the grand total row now stays pinned to the bottom of the result.
- Connector categories simplified: The connector browser now combines Productivity and Project management into a single “Productivity & project management” category.
- Invoice PDF footer branding: Invoice PDFs now display the DualEntry logo in the footer.
- Accrual balance validation: Accruals with unbalanced debit and credit entries can no longer be saved.
- Fixed Assets layout: Fixed spacing issues on the Fixed Assets overview and asset class preview, and restored the missing details sidebar.
- Invoice PDF appearance: Corrected the invoice PDF preview header color, which had rendered gray instead of black, and removed excess vertical spacing that inflated multi-item invoices.
- Invoice payment currency clarity: Fixed a confusing currency symbol shown while paying invoices.
- Report package picker: The report package picker no longer shows reports that are gated behind a feature flag your organization doesn’t have enabled.
- Report fullscreen view: Fixed reports opened in fullscreen from a drawer appearing clipped instead of filling the screen.
- Data Analytics filter popover: Fixed a filter chip popover that could appear detached from its chip.
- Bank Match table alignment: Transaction numbers in the Bank Match table are now properly centered.
- Approval policy tile icons: Fixed misaligned icons on approval policy tiles.
- Customer deposit details spacing: Added consistent spacing between tabs and the line items table on customer deposit details.
- Onboarding callout display: Fixed an onboarding callout that appeared broken in the top-right corner.
- IBAN bank account validation: Vendor bank account fields no longer reject valid IBAN values.
- Anomaly Detector button styling: Corrected the “Add condition group” button to use secondary styling instead of primary.
- Accounting Intelligence layout: Fixed header and filter bar layout issues, and fixed the chat sidebar showing the full side navigation instead of the chat session.
- Invoice line item display: Fixed duplicate line items in invoice previews caused by repeated item names.
- Task status notifications: Improved the clarity of status-change notifications in Tasks.
8 new features, 7 improvements, 24 fixes
New features
- Quotes: You can now create and manage sales quotes, including quote dates, line items, totals, contract terms, recipients, and signing order.
- Invoice templates: You can now save invoice templates for reuse instead of recreating layouts each time.
- Saved views for customer prepayment applications: You can now save custom table views for customer prepayment applications, the same way you already can for vendor prepayment applications.
- Scheduled delivery of saved reports: You can now schedule a saved report to be delivered automatically instead of running it manually each time.
- GST/HST Return report: You can now view GST/HST Return box amounts on a dedicated panel with a detail drill-down page.
- User-scoped API keys: Public API keys can now be bound to a specific user, so a key can be limited to that user’s company access instead of the full org.
- Bulk apply credit memos as customer payments: You can now apply credit memos as customer payments through bulk import instead of applying them one at a time.
- Yapily hosted reconsent: You can now start a new hosted reconsent for an existing EU or UK Yapily bank connection without losing the current connection while you complete it.
- Yapily bank connection reconsent countdown: Bank connection tiles and the connection settings drawer now show days until reconsent is required for Yapily connections, with guidance on the 90-day UK window and the 180-day EU window.
- Customer credit remaining amount: The customer credit widget now shows a remaining open amount column alongside the original credit amount.
- VAT and GST rate descriptions in tooltips: Tax rate dropdowns and line-level tax tooltips now show the rate description when one is set.
- EBITDA Income Statement report improvements: The EBITDA Income Statement report now supports drill-down to a detail view, shades calculation rows separately from subtotal headings, and lets you collapse the add-back section.
- External ID column for credits, refunds, and payments: Customer credits, refunds, and payments now support an optional External ID column in the list view and in exports.
- US Sales Tax detail report ship-to country filter: The US Sales Tax detail report now pre-filters to the United States based on each row’s ship-to country, and you can still choose other countries from the Country filter.
- Contract exchange rates: Contracts now use the daily exchange rate from your currency provider instead of a fixed 1.0 rate, matching invoices, revenue recognition, and customer credits.
- Dashboard tile trend colors: Trend colors on dashboard tiles now display correctly.
- AR Outstanding trend color: The AR Outstanding metric on the Accounting Intelligence scorecard now colors a decrease green and an increase red, matching how the other metrics behave.
- Accounting Intelligence record search: The Accounting Intelligence search tool now accepts a code, so you can find records by code instead of only by name.
- Stale MCP credentials: DualEntry now flags MCP credentials that have gone stale and prompts you to reconnect, instead of silently failing.
- Finch consolidated payroll tax mapping: When “Consolidate payroll taxes” is on, both the debit and credit side of a mapped tax now post correctly. Employer and employee taxes stay separate even when they share the same accounts.
- General ledger detail report timeouts: Large general ledger detail reports no longer time out or run slowly.
- Paid status on invoice and bill headers: Invoice and bill headers now show Paid, Partially paid, or Unpaid even when the underlying record has no explicit paid status.
- Vendor IBANs and custom GL account numbers: Vendor bank account fields now accept IBANs, and the chart of accounts form accepts any account number, rejecting one only if it’s already in use.
- Unbalanced accrual entries: DualEntry now blocks saving an accrual when its debit and credit lines don’t balance.
- Singapore dollar symbol: Amounts in Singapore dollars now show the S, so they’re not confused with US dollars.
- Purchase order and credit note PDF pagination: Purchase order and credit note PDFs now paginate correctly for multi-item documents.
- Invoice PDF spacing: Multi-item invoice PDFs no longer show excess vertical spacing between line items.
- Approvals sidebar scrolling: The approvals sidebar no longer clips activity content and now scrolls correctly.
- Dashboard date range picker shading: The dashboard date range picker is now shaded to match the Financial Reports date range picker.
- Task status change confirmation: Changing a task’s status now shows a confirmation toast.
- Read-only field alignment: Read-only field values now align correctly with their labels.
- Fixed Assets summary layout: Summary spacing and the Details sidebar in Fixed Assets are restored, and schedule tables now keep their Type, Period, and last columns visible with horizontal scrolling.
- Accounting Intelligence chat sidebar navigation: Opening the Accounting Intelligence chat sidebar now drops you straight into your session instead of showing the full side navigation.
- Paper checks visibility: Paper checks now show in the money-out sidebar based on your subscription and permissions instead of being hidden behind a feature gate.
- Contract summary revenue recognition badge: The revenue recognition summary on the contract summary page no longer clips its count badge.
- QBO sales tax payment imports: QBO migrations now import sales tax payments and refunds as journal entries instead of leaving them out.
- Customer prepayment application imports: Importing multiple customer prepayment applications that share the same company and posting date no longer rejects every row after the first.
- Accounting Intelligence company counts: Accounting Intelligence record counts now filter by company name correctly instead of including every company in the org.
- Bulk archive and recover validation: Bulk archive and recover now reject missing or cross-org record IDs and report errors by record ID instead of failing the whole batch.
9 new features, 3 improvements, 14 fixes
New features
- Account balances endpoint: The public API now exposes a read-only account balances endpoint that returns a trial-balance-equivalent view, with one signed balance per account and pagination up to 200 rows per page.
- HubSpot deal termination sync: Terminating, archiving, or reversing a contract now writes the termination date, type, and fee back to the linked HubSpot deal.
- Yapily consent tracking: Bank connections through Yapily now track when reconsent is required and surface that date on the connection list and detail views.
- Data Analytics saved reports: You can now save reports in Data Analytics with visibility controls and permissions enforced at query time.
- Accounting Intelligence suggestions respect permissions: Suggested actions from Accounting Intelligence now only appear if you have permission to perform them.
- Data Analytics CSV and XLSX export: You can now export a Data Analytics report to CSV or XLSX and track progress until the file is ready to download.
- HubSpot invoice PDF links: Synced HubSpot invoices now link directly to the matching invoice and PDF in DualEntry.
- Finicity bank connections: Bank connections through Finicity now track connection lifecycle status alongside the other supported providers.
- Data Analytics scheduled report delivery: You can now schedule a saved Data Analytics report to be emailed on a daily, weekly, monthly, or period close cadence.
- VAT/GST rate description on bills: The tax rate tooltip on the bill create and view screens now shows the VAT/GST rate description.
- Data Analytics filter value picker: The filter row in Data Analytics now lists the distinct values for a selected field, with search and paging, so you can pick a value instead of typing it.
- Bank match AI scoring: When several bank match candidates share the same amount, an additional AI model now scores them to pick the best match, falling back to the existing method when needed.
- Contract schedules anchored correctly at month end: Contracts starting at the end of a month no longer drift to the 28th in later periods. Schedule dates now stay anchored to the correct day.
- Contract endpoints respect company restrictions: Contract endpoints that previously ignored company scoping now correctly restrict access for users limited to specific companies.
- QBO deposit resync no longer wipes existing lines: Remigrating a QuickBooks Online deposit now reuses existing customer deposit lines instead of deleting and recreating all of them.
- Cubby integration auto-maps your company: After connecting Cubby, your organization and company are now mapped automatically instead of requiring manual selection.
- MCP connector approval now matches your settings: Tools set to “Always allow” no longer prompt for approval, and tools set to “Needs approval” now appear correctly with an approval prompt instead of disappearing.
- Balance Sheet Detail parent account balances corrected: Parent accounts in the Balance Sheet Detail report no longer drop their own ending balance from the total.
- Billable expenses bulk actions work across all transaction types: Bulk actions on billable expenses now apply correctly regardless of the source transaction type.
- Data Analytics money cells and totals corrected: Money cells now show a currency symbol when unconverted. Grouped totals no longer mark a group as mixed currency when each child uses a single currency. Flat reports now return a grand total instead of relying on the page loaded in the browser.
- Revenue roll-forward schedules include unposted recognitions: The revenue roll-forward template now includes draft recognitions with their scheduled amount and remaining balance, instead of showing every line as fully recognized.
- Non-USD QuickBooks Online reports reconcile correctly: Statement reconciliation no longer rejects QuickBooks Online reports in currencies other than USD.
- Archiving an intercompany invoice clears its GL entries: Archiving a contract’s associated intercompany invoice now reverses its elimination GL entries instead of leaving them posted.
- Stripe payment methods map to the correct customer: Saved payment methods synced from Stripe now link to the imported Stripe customer instead of a possibly unmapped one.
- Data Analytics reports fail with a clear message: Reports with unsupported aggregations or unknown formula references now return a clear error message instead of failing unexpectedly.
- OAuth connections require a signed state parameter: Connecting a third-party integration through OAuth now requires a signed state parameter, closing a gap that could let a connection be hijacked.
9 new features, 1 improvement, 20 fixes
New features
- Change order API fields now required: The public API for change orders now requires
quantity,rate, andstandalone_selling_price. Requests that previously omitted these fields now fail validation. - Send invoices via the API: A new public API endpoint lets you send an invoice directly, without switching to the DualEntry app.
- Saved reports in Data Analytics: You can now save report configurations for later use, with private or organization-wide visibility, and organize them into owned, shared, and archived views.
- Journal entries always assigned to books: Journal entries created through the API, bulk import, or legacy import are now automatically assigned to all active books, so multi-book organizations no longer need a manual assignment step.
- Revoke bank connection consent on delete: Deleting a Yapily bank connection now revokes the underlying consent with the bank, instead of only removing the connection from DualEntry.
- Interactive Accounting Intelligence run history: The runs list in the Accounting Intelligence drawer is now interactive, so you can open and continue past run chats directly from the list.
- US Sales Tax Detail report: A new detail report shows sales tax line projections scoped to your tax control accounts.
- Book filter on all Reporting Center reports: The accounting book filter is now available on every report in Reporting Center, not only the trial balance, for organizations with multiple books.
- Yapily bank connection consent flow: Connecting a bank account through Yapily now walks you through a dedicated connect and consent screen.
- Sortable customer and vendor transaction lists: The embedded transaction tables on customer and vendor detail pages now support sorting by column, defaulting to date descending.
- Balance Sheet Detail totals: Parent accounts with both their own postings and child accounts now include their own balance in the account’s Total on Balance Sheet Detail, on-screen and in xlsx/PDF exports. Totals for accounts like this were previously understated by the parent account’s own balance.
- Bulk reclassify now respects approval policy tiers: Bulk reclassification of posted records now enforces the same approval-policy lock as individual edits, and a blocked bulk reclassification records a failed audit entry.
- Archived organizations hidden from login: Users with memberships in an archived organization no longer see that organization as a login option, and no longer get routed into it by mistake.
- Payroll benefits categorization: Finch-sourced benefits deductions and contributions (health, medical, dental, vision, HSA, FSA, and insurance) now roll up into shared payroll catalog categories instead of appearing as separate line items.
- Contract period lock boundary: Fixed a boundary case where contract receiving was blocked by a locked-period error even though the transaction date fell outside the locked period.
- Balance Sheet Detail subtotal balances: Parent account subtotal rows on Balance Sheet Detail now show the ending balance instead of the parent’s own activity for the period.
- Chart of accounts number validation: The “next available number” error on the account Number field now updates on every keystroke instead of lagging one keystroke behind and clearing only on blur.
- Non-violation account suggestions: Account number suggestions that don’t violate a numbering rule now display in a different color than suggestions that do.
- Data Analytics report list layout: Row descriptions in the Data Analytics report list no longer clip vertically or overlap adjacent rows.
- EBITDA report toggle: The Net Income to EBITDA and EBITDA to Net Income toggle now sits above the report toolbar instead of between the toolbar and the filters row. Its labels are also clearer.
- Report toolbar layout in the AI panel: Fixed a narrow-panel bug where the report toolbar’s left buttons stacked into a single column, and fixed report fullscreen not working from the AI panel.
- Global search vendor labeling: Global search now labels vendor records as “Vendor” instead of “Company”.
- Customers list crash: Fixed a crash on the customers list caused by a missing title for the customer record type.
- Justworks payroll integration issues: Fixed general issues affecting the Justworks payroll integration.
- Accounting Intelligence crash: Fixed a crash in the Accounting Intelligence panel when viewing an invoice record.
- Contracts For Review status filter: The Status filter on the Contracts For Review tab now filters the list as expected instead of leaving it unchanged.
- Bill edit crash on custom fields: Fixed a crash when editing a bill with a custom field pair that had no associated field definition.
- Ownership filter count display: The filter count badge on the ownership facet button no longer gets clipped.
- Amortization readonly view classifications: Classification values now display correctly in the readonly amortizations view.
- Ramp account mapping validation errors: Save validation errors on the Ramp system accounts mapping form now display instead of the save button doing nothing.
7 new features, 7 improvements, 12 fixes
New features
- Find records by external ID: You can now look up invoices and other records using an external integration ID, such as a Stripe ID, instead of searching by internal reference only.
- Billable expense fields on the public API: The public API now exposes
is_billable, customer, project, and markup percentage fields on the bill, direct expense, vendor credit, purchase order, and journal entry write endpoints. - Send invoices from the public API: You can now send an invoice to a customer directly through the public API instead of sending it from the app.
- Custom views for billable expense lines: You can now create and save custom views for billable expense lines, the same way you can for other list views.
- Exclude inactive companies from reports: You can now exclude inactive companies when viewing consolidated reports and dashboards.
- Sync invoice billing details to HubSpot: DualEntry now syncs invoice billed, paid, and balance due amounts, along with status and aging buckets, to HubSpot as payments and archive changes occur.
- Yapily transaction sync: Bank transactions from accounts connected through Yapily now sync automatically, including an initial backfill of transaction history.
- Bulk archive and recover for more record types: Direct expenses and vendor payments now support bulk archive and recover, and bulk actions for billable expenses now work across all source transaction types.
- VAT and GST rates in bulk import: Bulk Import and Update V2 for bills and invoices now supports VAT and GST rate fields, so you no longer need to set tax rates manually after importing.
- Billable expense and intercompany data on detail reports: The general ledger, income statement, and balance sheet detail reports now show billable expense fields and a link to the related intercompany invoice.
- EBITDA income statement detail view: The EBITDA income statement report now has a Detail tab, so you can drill down from a summary line into the underlying transactions again.
- Clearer EBITDA view toggle labels: The EBITDA report’s view toggle now reads “Net Income to EBITDA” and “EBITDA to Net Income” instead of “Reconciliation” and “P&L View”, so it’s clear which direction each view reads.
- CTA Balance Audit report available to more users: The CTA Balance Audit report now appears in the Report Center for every user with financial statement access, instead of a limited group.
- Yapily hosted bank connection flow: Connecting a bank account through Yapily now uses a hosted consent redirect flow, including support for two-factor authentication during setup.
- Stuck scheduled agent runs: Scheduled agent runs that were left stuck in a running state after a crash are now automatically detected and recovered.
- Bulk import exchange rate precision: The bulk import exchange rate field no longer caps values at six decimal places, so imported rates now match the precision used elsewhere in the system.
- Currency revaluation archive messages: Archiving or recovering a currency revaluation from its detail page no longer shows an error message alongside the success message.
- Custom field validation on recurring records: Recurring records now correctly validate required custom fields before saving.
- Global search record labels: Global search now labels customer and vendor records as “Customer” and “Vendor” instead of “Company” when the record belongs to a company.
- Dashboard filters not refreshing data: Changing a filter on the dashboard, such as by customer, now updates the numbers shown without requiring a page reload.
- Chart of accounts number range: Entering an account number outside the suggested range for its type now shows a hint instead of blocking you from saving the account.
- PDF attachment icon: The attachment icon for PDF files now displays correctly instead of showing the wrong icon.
- Opening a workbook from any row cell: You can now open a workbook by clicking anywhere in its row, not only on the workbook name.
- Account merge drawer button alignment: The Merge button in the account merge drawer now aligns to the right of the footer, consistent with other drawers.
- Stripe invoice line order: Invoice lines synced from Stripe now keep a stable order instead of reordering unpredictably.
- Invoice email sending timeout: Sending a public invoice email no longer times out and fails silently in some cases.
4 new features, 9 improvements, 14 fixes
New features
- Deal sync stage settings: You can now configure deal sync stages directly in the integrations settings UI.
- Editable recurring end dates: You can now edit the end date on a locked recurring template without unlocking it, and the stop and end-date confirmation dialogs are now consistent.
- Flux Analysis comparison periods: The Comparative report dropdown on the Income Statement Flux Analysis report no longer disables valid comparison-period options.
- Billable expenses via public API: You can now create billable expenses through the public API, and change order markup can now be updated on records beyond bills.
- Billable detail report columns: Detail reports now support nine billable columns, including a Billable Invoice column that links directly to the invoice record instead of showing blank dashes.
- Dashboard active-company filtering: Dashboard widgets and the Subsidiary Navigator now support filtering to active companies only, and the Subsidiary Navigator’s list view scrolls properly instead of running off the bottom of the widget.
- Custom views for billable lines: Billable lines now support custom views.
- Refreshed shell colors: The sidebar, top bar, and search chrome now use updated background and border colors so the app shell is visually distinct from page content.
- Stripe ID on invoice export: Invoice exports now include the Stripe ID as a column.
- Accruals visible under transactions: Accruals now appear under the Transactions view.
- EBITDA Income Statement detail view: The EBITDA Income Statement report now includes a Detail view.
- Yapily bank connections: Bank connections via Yapily now support the hosted consent flow, including consent polling and callback handling.
- VAT and GST rates in bulk import: Bulk Import and Update V2 for bills and invoices now supports VAT and GST rate fields.
- Contract Milestones and Usages in Safari: Fixed a Safari issue where the page rendered behind the sidebar on Contract Milestones and Usages.
- Task type collisions: Tasks no longer collide when two tasks share the same type.
- Money In record-level shortcuts: Restored record-level shortcuts (audit trail, fullscreen, archive) across Customer Credits, Prepayments, Cash Sales, and Customers.
- Organization settings save: Fixed an issue where saving organization settings a second time silently failed to persist changes.
- Create and update toasts: Fixed incorrect toast messages appearing when editing a company, report, or change order instead of the correct update confirmation.
- Skip rule removal dialog: Fixed a bug in the skip rule removal confirmation modal.
- AR Dunning label: Subscription flag labels now correctly display “AR Dunning” instead of “Ar Dunning”.
- Form field spacing: Removed unnecessary empty space reserved beneath form fields.
- Custom field validation on recurring records: Custom fields on recurring records now enforce required validation, which was previously missing.
- Discount validation: Fixed an issue where enabling the discount toggle without entering a value did not show a validation error.
- Archiving accounts in the chart of accounts: Archiving no longer throws an incorrect account failure error.
- Drawer route animations: Fixed intercepted routes rendering drawer panels without the expected open and close animation.
- Avatar background with image: Fixed avatars showing an unwanted background color when a profile image is present.
- Vendor and customer dropdown errors: Fixed an issue where selecting a vendor or customer from certain dropdowns could cause the page to fail to load.
1 improvement, 5 fixes
Improvements
- EBITDA Income Statement detail view: You can now open a row on the EBITDA Income Statement to see the underlying postings, instead of only the summary totals.
- Flux Analysis comparison-period options: The Comparative report dropdown on the Flux Analysis Income Statement no longer disables valid comparison-period options.
- Flux Analysis account visibility: The Flux Income Statement and Balance Sheet no longer drop accounts that have no current-period activity but do have comparison-period activity.
- Intercompany elimination exchange rate: Fixed an error where eliminating a customer credit could fail with “Exchange rate for identical currencies must be 1.0” when the elimination company’s base currency matched the transaction currency.
- Accounting Intelligence query handling: Improved how the assistant distinguishes flux analysis questions from revenue and expense questions, reducing mismatched answers.
- API documentation search: Ctrl+F now finds text in the API docs that is scrolled off-screen.
8 new features, 5 improvements, 25 fixes
New features
- Multiple Stripe accounts per organization: You can now connect more than one Stripe account under a single organization, matching how Brex and Ramp connections already work.
- Bulk GL account updates on journal entries: Update the GL account across multiple line items in a single journal entry at once instead of editing each line individually.
- Dashboard tab management: You can now create and rename dashboard tabs inline, matching the existing behavior for customer views.
- Avalara invoice messages: Avalara tax messages are now saved and displayed directly on the invoice record.
- Public API invoice sending: The public API now includes an endpoint to send an invoice, matching the send action available in the app.
- Billable markup editing: You can now edit billable markups without an organization-level restriction blocking the change.
- HubSpot product sync: Items in DualEntry now push to HubSpot as products, following the same sync pattern as Ramp, Brex, and Bill.com catalogs.
- Accrual templates: You can now create accrual templates for journal entries and view all journal entries created from a single template.
- Book filter on trial balance reports: Trial balance reports now support filtering by book for organizations using multiple books, and the GL tab now shows book information.
- AR Dunning improvements: AR Dunning now applies better email defaults, lets you skip optional schedule fields, and shows a cleaner reminder log.
- Expandable open receivables column: The open receivables column on the customer payment screen can now be expanded for easier review.
- External ID column on invoices: The invoices list and export now include an external ID column.
- Yapily bank connections: Bank Connections now supports Yapily as an additional provider, including hosted-pages institutions.
- Flux Analysis comparison periods: Removed the Year over Year comparison option in Flux Analysis for the Income Statement because it grouped monthly results incorrectly. Quarter over Quarter comparisons remain available.
- Bill currency on PDF upload: Creating a new bill from a PDF upload no longer defaults the base currency to USD when the company’s actual base currency is EUR.
- Default payment application: Fixed an issue where a default payment was not flowing through to the invoice.
- Contract date sorting: Fixed sorting of contract dates so it no longer ignores the year for month-only dates.
- Bank Match Rules account list: Fixed overlapping and clipped account names in the Bank Accounts list on Bank Match Rules.
- Report export dialog: The report export blocking dialog now includes a Cancel button and no longer blurs the entire page, only the table.
- Report filters: Customer and Vendor filters across reports now exclude archived customers and vendors.
- Trial balance group drawer: Fixed the group drawer pre-selecting Income Statement account types that match no rows.
- Budget select-all indicator: Fixed the select-all control showing a minus instead of a checkmark when a budget includes an inactive account.
- Keyboard shortcuts drawer: The keyboard shortcuts drawer no longer offers report jumps you don’t have permission to open.
- Income Statement report link: Fixed the Accounting Intelligence report card link so it opens the Income Statement with site navigation intact, and “Open in Reports” now loads correctly.
- Brex reimbursement sync: Brex reimbursement payments now sync as a vendor payment applied to the bill instead of a plain journal entry.
- Invoice creation without Stripe: Fixed an error that blocked invoice creation on organizations with no Stripe integration connected.
- Migration start error: Fixed an error card that appeared when starting a migration.
- Reporting icons: Fixed inconsistent icons across reporting screens.
- Integrations page scrolling: Fixed an issue that prevented scrolling on the active integrations page.
- Contract page expand arrow: Fixed the expand arrow on the contract page so it now expands the content.
- Download PDF button sizing: Fixed the Download PDF button rendering taller than other buttons.
- Custom fields loading error: Fixed an error that caused custom fields to fail loading.
- Avalara exemption codes: Exemption codes no longer appear on a customer’s tax fields when the organization doesn’t have Avalara connected and set up.
- Bank Match rule classifications: Bank Match rules that create journal entries now apply their configured classifications to both journal entry lines.
- Report root total balances: Fixed root total rows in reports so they now show a balance instead of appearing blank.
- Subsidiary Navigator elimination companies: Elimination and inactive companies now appear in the Subsidiary Navigator so dashboard metrics can include them.
- Dashboard AR/AP widgets: Outstanding and overdue AR/AP dashboard widgets no longer filter out non-system accounts, matching the AR/AP aging reports.
- Accounting Intelligence tool suggestions: Fixed an issue where clicking a suggested prompt could remove tools Accounting Intelligence needed to answer questions, causing it to return generic advice instead of report data.
7 new features, 2 improvements, 31 fixes
New features
- Inline dashboard tab editing: You can now create and rename dashboard tabs directly on the tab bar, without a dialog. Use the New Dashboard button, the Options menu, the tab’s kebab menu, or a double-click to rename a tab in place.
- More Flux comparison options: The Flux comparison dropdown now offers Quarter over Quarter and Year over Year in addition to the existing options, so you can compare periods the way you need to. Quarter over Quarter is not available on the Balance Sheet, where quarterly snapshots align to quarter end.
- ADP Workforce Now payroll tax toggle persists: The payroll tax setting on the ADP Workforce Now integration now saves and reloads correctly instead of resetting.
- Expandable open receivables column: You can now expand the open receivables column for more detail.
- Billable expenses markup adjustment: You can now change the markup percentage on a billable expense directly from the action menu.
- Gmail attachments and reconciliation from chat: Accounting Intelligence can now import Gmail attachments into a chat and create reconciliations from files shared in that chat.
- Public API v3: The public API version previously named 2.0.0 is now named v3.
- VAT Return report shows tax rate names: The VAT Return report now includes a Tax Rate Name column, so you can see labels like “Non-Deductible UK” alongside the rate.
- Multiple vendor origin locations: Vendors can now have multiple places of origin or purchase, so you can track different warehouses per country.
- Flux AI draft currency symbol: The Flux AI draft explanation now shows the correct £ symbol for GBP balances instead of $.
- Bank rule vendor dropdown: The vendor dropdown in bank rules now works correctly when creating or editing a rule.
- Bank rule operator validation alignment: An operator validation message in Bank Match Rules no longer misaligns the surrounding form.
- Bank transfer between own accounts: Transferring funds between your own bank accounts now matches the actual amount received instead of posting an unintended realized loss.
- Custom fields on direct expenses from the API: Custom fields submitted through the public API now appear correctly on direct expense records.
- Classification save button label: The Classification save button no longer briefly relabels itself to “Save and Post” while a save is in progress.
- Browser tab icon: Browser tabs now consistently show the DualEntry icon.
- Accounting Setup list refresh: The Accounting Setup list now refreshes correctly when you apply or clear filters.
- Inbox date filter: The date filter in the Inbox now filters results as expected.
- Keyboard shortcut permissions: Keyboard shortcut jumps to reports now respect your permissions, so you no longer land on an access-denied page after pressing a shortcut for a report you can’t view.
- Budget select-all checkbox: Selecting all rows on a budget that includes an inactive account now shows a checkmark instead of an indeterminate dash.
- Trial Balance account type filter: The account type filter on a Trial Balance custom report no longer offers options that return no results.
- EBITDA report scroll position: The EBITDA report no longer jumps back to the top when you scroll to the bottom.
- Report totals showing balance: Root total rows in reports now display their balance correctly.
- Report export styling: Exporting a report now dims the header and filter bar along with the table, instead of leaving them undimmed.
- Ownership name validation: Selecting a company in Ownership no longer leaves a stale “Name is required” error after the Name field auto-populates.
- PDF bill currency: Bills created from a PDF now use the company’s base currency correctly.
- Page header and filter bar color: The header and filter bar on Dashboard and Anomaly Detection are now solid white instead of showing the gray page background through them.
- Header action button size: Page header action buttons are now a consistent, smaller size, matching the rest of the header.
- Avatar sizing: Avatar sizes now scale gradually instead of jumping between sizes.
- Charts and tables preserved on report page chat: Asking Accounting Intelligence for a chart while viewing a report page no longer strips the chart or table from the response.
- Avalara invoice messages on records: Avalara invoice messages now persist and display on the invoice record instead of being dropped.
- Billable Expenses view error toast: The Billable Expenses page no longer shows a “Failed to load views” error toast when the page and its records are visible.
- Classification edits on reconciled transactions: You can now edit non-financial fields on a reconciled or bank-matched transaction while the period is open, instead of getting a “Fields that cannot be changed” error.
- Vendor credit duplicate detection: Uploading a vendor credit no longer triggers a false duplicate error when a bill posted on the same date already exists.
- Billable Expenses invoice generation: Generating an invoice from Billable Expenses lines dated before 09/01/2026 no longer fails to load.
- Brex reimbursement sync: Brex reimbursement payments now sync as a vendor payment applied to the bill instead of as a standalone journal entry.
- Retained earnings roll timing: The retained earnings roll now honors a company’s fiscal year end instead of always firing at calendar year end.
- General Ledger customer filter for deposits: The General Ledger report’s Customer filter now returns results for Customer Deposit transactions.
- Integration catalog loading error: The integrations catalog list no longer fails to load when provider logos are enriched.
- Stripe reconnection compatibility: Reconnecting Stripe now works correctly for organizations with older OAuth or payment setups.
4 new features, 3 improvements, 16 fixes
New features
- Multiple Stripe accounts per organization: You can now connect more than one Stripe account to a single organization, matching the existing multi-connection support for Brex and Ramp.
- Bulk account edit on journal entries: You can now change the account on multiple journal entry lines at once instead of editing each line individually.
- Self-storage sandbox option: Self-storage is now available as an industry option when setting up a sandbox environment.
- Ownership module access for customers: The Ownership module is now available to any user with ownership permissions, not only DualEntry staff.
- Book filter on trial balance reports: Trial balance reports now include a book filter for organizations using multiple books.
- Book info on journal entry GL impact: The GL impact tab on a journal entry now shows which book each line belongs to for multibook companies.
- Cross-statement row labels in custom reports: Custom reports now show a badge identifying the source statement for rows pulled from outside the report’s base statement, such as revenue shown on a balance sheet.
- Invoice creation without Stripe: Fixed an error that blocked invoice creation for organizations that use ACH through a bank feed and have no Stripe integration connected.
- Accordion expand and collapse: Clicking the arrow icon on accordion sections, such as performance obligations on contract detail pages, now correctly expands and collapses the content.
- Archived records in report filters: The Customer and Vendor filters in Report Center no longer list archived records, so near-duplicate names no longer crowd the dropdown.
- Sidebar layout shift: Fixed a layout shift caused by an empty submenu container in the sidebar.
- Scrolling on integrations pages: The Active and All integrations pages now scroll correctly when there are more tiles than fit the screen.
- Activity tab empty state: The empty state on a record’s Activity tab now centers correctly below the tabs.
- Inbox tab indicator: The tab selection indicator in the inbox now slides smoothly between tabs instead of snapping instantly.
- Multiselect label truncation: Long selected option labels in multiselect fields now truncate instead of overflowing.
- Download PDF button height: The Download PDF button in the invoices list bulk actions bar now matches the height of the other bulk action buttons.
- Sheets workbook editor: Fixed an issue where opening a Sheets workbook showed a blank editor instead of the worksheet.
- Export cancel button: The blocking card shown during a report export now includes a working Cancel button that stops the export.
- Migration start race condition: Fixed a timing issue that could interrupt starting a migration.
- Sorting by start date: Fixed sorting so that the start date column sorts correctly instead of using the wrong field.
- Default payment info on invoices: Invoices now populate default payment information automatically when the company has it configured.
- Card title alignment: The card title now centers correctly with media and aside content when the description is omitted.
- Organization popover alignment: Fixed the alignment and border radius of the organization selector popover.
6 new features, 13 improvements, 16 fixes
New features
- Fixed asset management tools: New tools let you update, delete, schedule, and book fixed assets directly.
- Scheduled agents are private to their owner: Scheduled Accounting Intelligence agents you create are now visible and editable only by you. Other users, including admins, can no longer view, pause, edit, or delete another user’s scheduled agent.
- Custom fields on API-created direct expenses: Direct expenses created through the API now show their custom fields when you open them for editing.
- Bank match rule party selection: Bank match rules can now select a specific customer or vendor as a match condition.
- Distinct GL accounts for Ramp manual payments: Ramp transactions paid outside Ramp now map to distinct GL accounts you choose, instead of always posting to the system bank account.
- Accounting Intelligence answers bank match questions with a flowchart: When Accounting Intelligence proposes a bank match rule, it now renders the rule as a flowchart card, matching the bank match rule editor. The flowchart stays visible after you approve or reject it.
- Tax rate name in VAT return detail: The VAT Return Detail report now includes a Tax Rate Name column, so rates that share the same type and percentage (for example, Plain Standard 21% vs. Non-Deductible UK 21%) stay distinguishable.
- More accurate report filter suggestions: Accounting Intelligence now suggests filters based on what each report actually supports. Aging reports no longer offer an account filter, and AR/AP aging reports correctly offer customer or vendor filters.
- Currency-accurate flux answers: Accounting Intelligence’s flux and variance answers now use your company’s actual currency symbol instead of always defaulting to dollar signs.
- Sheets workbooks with autosave: Reports now includes a Sheets section where you can create, duplicate, search, and open spreadsheet workbooks that autosave your edits a few seconds after you stop typing.
- Active approval policy counts: Approval policy landing cards now show how many policies are currently active for each workflow.
- Realized gain/loss on bank transfers: The bank transfer form now includes a toggle to calculate realized gain or loss when the transfer currency differs from your company’s base currency.
- Audit trail for item records: Item records now keep an audit trail of changes.
- Audit trail for GST/VAT drawers: The GST and VAT detail drawers now keep an audit trail of changes.
- GST/VAT rate next to pricing on contracts: Contract line items now show the GST/VAT rate next to pricing instead of in a separate section.
- Tax rate name in tax tooltip: Bill line tax tooltips now show the Tax Rate Name when one is set, so you can distinguish rates that share the same type and percentage.
- Accounting Intelligence can use MCP tools: Accounting Intelligence can now load and use MCP tools when answering questions.
- Keyboard shortcuts for more money-in and money-out forms: Cash sales, customer credits, customer prepayments, prepayment applications, customer deposits, and customer refunds now support the same keyboard shortcuts as other transaction forms.
- Multiple Stripe accounts per company: A company can now connect more than one Stripe account, and you can override the integration name for each additional connection.
- Approval policy changes no longer revive archived entries: Changing an approval policy no longer recovers or posts previously archived transactions.
- Revenue recognition rollforward totals corrected: Beginning Deferred and Ending Deferred totals on the revenue recognition rollforward now use the first month’s opening balance and the last month’s closing balance. Previously, they incorrectly summed balances across months.
- Consolidated balance sheet detail currency conversion: Consolidated Balance Sheet Detail no longer shows running balances in native currency for multi-currency companies; balances are now correctly converted before rolling up.
- Restored invoice line item lookups: The endpoint for retrieving an invoice’s line items is working again after being unreachable, along with the equivalent endpoint for 20 other line-bearing records.
- Balance subtotal on Balance Sheet Detail grouping rows: Collapsed group rows and grand totals on the Balance Sheet Detail report now show a Balance subtotal instead of leaving it blank.
- Saved report date presets recompute after a period lock: A custom report saved with a period lock date preset now recalculates its date range against the current lock status when you reopen it. It no longer keeps the dates from when it was saved.
- EBITDA Category limited to relevant account types: The EBITDA Category field is now only available on cost of goods sold, expense, and other expense accounts, matching the account types the EBITDA report actually adds back.
- Report export no longer leaves the header clickable: Exporting a report now dims the breadcrumb, title, tabs, and filter bar along with the report table, so you can’t click into them while the export runs.
- EBITDA report grid settles at the bottom: The EBITDA profit and loss view no longer jumps back up two rows short when you scroll to the bottom.
- New owner drawer clears a stale name error: Selecting a company in the New Owner drawer no longer leaves a “Name is required” error under the Name field after it’s been filled in.
- Terms list filters refresh results: Applying or clearing filters on the terms list now refetches the list instead of showing stale results.
- Browser tab icon restored: Browser tabs now show the DualEntry icon again.
- Classification save button no longer flickers: The classification save button no longer briefly relabels itself mid-save.
- Fixed asset MCP tools restored: Fixed asset update, delete, and schedule tools, along with depreciation book tools, are reachable again when Accounting Intelligence uses them.
- API v2 list endpoints restored: Frozen v2 API list endpoints once again return inline list items. Only the v2.0.0 API keeps the leaner list format.
- Vendor and VAT ID shown on bill output entries: The VAT Return Detail report now shows the vendor name and VAT ID on reverse-charge bill output entries, which previously left both fields blank.
8 new features, 2 improvements, 6 fixes
New features
- PayPal bank feed: Connect PayPal to bring in account balances and transactions for standard bank matching. Fees are netted into the feed amount, and refunds import as separate movements so matched transactions stay untouched.
- Moss accounting integration: Import approved Moss expenses, including card purchases, refunds, invoices, reimbursements, and bank transfers, directly into your books with source IDs, currencies, VAT, and classifications preserved.
- Sheets workbooks with autosave: Create, duplicate, search, and update Sheets workbooks, with autosave that protects against overwriting newer changes to the same workbook.
- Entity lookup by code: Accounting Intelligence now resolves and displays customers and vendors by their code instead of an internal ID when your organization uses code-based identifiers.
- EBITDA category on summary reports: Summary reports now carry the EBITDA category tag on each row, so the EBITDA chip displays correctly instead of appearing blank.
- HubSpot invoice sync: DualEntry now creates and updates HubSpot invoices to match invoices created in DualEntry, keeping numbers, dates, currency, and links to deals and companies in sync.
- Stripe zero amount invoices: The Stripe integration now imports invoices with a $0 amount instead of skipping them.
- Bank transfer gain/loss control: You can now suppress the realized gain/loss calculation on bank transfers between your own accounts when the bank-executed rate differs from the system exchange rate.
- Workflow rule counts: Workflow rule cards now show active and inactive rule counts by record type.
- Audit trail for tax rates: Changes to VAT and GST tax rates now appear in the audit trail.
- Item Receipts list amount: The Item Receipts list view now shows the correct total amount instead of $0.00 for receipts with a nonzero total.
- Invoice list filter error: Filtering invoices by customer prepayment application ID no longer returns a server error.
- Faster invoice, bill, and journal entry lists: List requests for invoices, bills, and journal entries in the API return significantly faster.
- Flux analysis quarter over quarter: Quarter over quarter comparisons in flux analysis now use the full fiscal quarter for the current period instead of a single month.
- Custom reports cross statement rows: Custom reports that pull an account from a different statement, such as an income statement account in a balance-sheet-based report, now show the correct amount instead of $0.00.
- QuickBooks Desktop migrations: Migrations from QuickBooks Desktop now correctly bring in paychecks, liability payments, and bank transactions on purchases and deposits.
5 new features, 3 improvements, 12 fixes
New features
- Fivetran reconnect for QBO: DualEntry now detects when a QuickBooks Online connection loses OAuth authorization after a successful sync and shows a reconnect option instead of leaving the connection stuck showing as Connected.
- HubSpot v2 sync controls: Organizations on the HubSpot v2 sync can now toggle invoice, payment, and item push separately and filter what syncs by date, and DualEntry surfaces write failures on the affected record with a retry option.
- QBO and Xero import start date: You can now set a transaction start date before your first QuickBooks Online or Xero import so older transactions stay out of DualEntry.
- Recurring transaction stop button: You can now stop a recurring transaction template directly from its detail page instead of waiting for it to run its course.
- Custom views for statistical journals: You can now save and switch between custom table views on the statistical journal list.
- Vendor and customer country filtering: The vendor, customer, and nexus lists now support filtering by multiple countries at once.
- Exclude from aging on journal entry reversals: Journal entry reversal lines now include an “Exclude from Aging” toggle, matching the option on the original journal entry.
- Tax rates on contract obligations: Contract obligations now include a GST/VAT rate dropdown, so invoices generated from contracts calculate tax correctly.
- ARR and MRR dashboard totals: Entity-level ARR and MRR figures now sum correctly to the group total on consolidated dashboards, fixing cases where an entity’s currency was left unconverted.
- EBITDA add-back calculation: The EBITDA add-back metric no longer skips an organization’s add-backs when a balance-sheet account happens to carry an EBITDA tag.
- Printed check addresses: Printed checks now show the vendor’s state abbreviation instead of the country on the address block.
- Bill.com bill archiving: Archiving a paid bill synced from Bill.com no longer fails when the bill still has linked vendor payments; settlements are archived first.
- Ramp sync warnings: Temporary Ramp connection errors during transaction refresh no longer generate error alerts when the sync continues successfully.
- Code sequence display: New invoice and journal entry code sequences now display and resolve correctly, including contract invoices showing their own code prefix.
- Recurring transaction stop button state: The Stop button on a recurring transaction template now stays disabled after you stop it instead of appearing active again.
- Reconciliation page company filter: The company filter on the reconciliation page now applies correctly instead of showing all companies.
- Report schedule time field: The Time field on report package schedules now shows a required-field asterisk and no longer misaligns the Time Zone selector when validation fails.
- Item receipt location field: The Location column on item receipts now shows a required-field asterisk.
- Organization settings docs links: The Docs button on Organization Settings tabs now opens the documentation page that matches the tab you’re viewing.
- Vendor and customer country filter results: Selecting a country with no matching records no longer clears the previously filtered list.
4 new features, 3 improvements, 26 fixes
New features
- Billable expenses for intercompany customers: Default consolidation, markup, and item settings for billable expenses now extend to intercompany customers.
- Bulk edit company access: You can now bulk edit company access on the customer and vendor lists instead of updating each record individually.
- Customer credit PDF preview: You can now preview a customer credit as a PDF before finalizing it.
- Addepar integration: The Addepar connector is now available in the integrations list, with a connect dialog for setting up your API key.
- Exclude reversal lines from aging: Journal entry reversal lines now have an “Exclude from Aging” toggle, letting you keep reversed entries out of your aging reports.
- Statistical journal bulk actions: Statistical Journals now support bulk actions and recovery of removed entries.
- Left navigation appearance: The left navigation bar has an improved visual layout.
- Sandbox tax calculation: Fixed an issue where sandbox invoices were not adding tax even when a valid shipping address was provided.
- Public API tax rounding: The API now accepts submitted VAT and GST amounts that differ from the calculated amount by up to $0.01, preventing unbalanced journal entries when creating direct expenses through the public API.
- Accounting Intelligence response indicator: The side pane now shows a thinking indicator while a response is pending instead of leaving you without feedback until text appears.
- Accounting Intelligence saved reports: Saved custom reports now render correctly in Accounting Intelligence.
- Custom view renaming: Restored the ability to rename custom views when working with the new tabs.
- Migration Workflow status filter: The Migration Workflow status filter now updates the list immediately instead of requiring a manual refresh.
- Contract creation drag and drop: Fixed a regression that prevented dragging and dropping performance obligations into invoice groups during contract creation.
- Bank Match rule summary wording: Bank Match rule summaries now say “Credit account” for accuracy.
- Reconciliation page company filter: The company filter now applies correctly on the reconciliation page.
- Audit Trail page navigation: The Audit Trail (Logins) page’s browser tab title and sidebar highlight now match the current page.
- Amount paid display: The amount paid displayed on a record now reflects the selected bank account.
- Invoice preview scrolling: The invoice preview no longer jumps while you scroll.
- Overlay and drawer layering: Fixed drawers and overlays, including the report Customize row drawer and combobox menus, rendering behind modals in some views.
- Nexus modal country selection: The nexus modal no longer closes automatically when you try to select a country.
- Company drawer navigation: Clicking a company in form view mode no longer opens a drawer over a 404 page.
- Bulk import action buttons: Action buttons in the bulk imports table now render as buttons instead of hyperlinks.
- Rippling W-2 account mapping: Added missing debit and credit mapping for W-2 accounts in the Rippling integration.
- Custom report row order: Fixed an issue where saved row order data on a custom report could fail to match when the report was reopened.
- Custom report row restoration: Restoring a removed custom report row now keeps its original definition instead of losing it.
- EBITDA report suggestions and rows: EBITDA category suggestions now reflect live data, and report rows no longer link to a details page that isn’t available.
- EBITDA category filter export: The EBITDA report’s Category filter now exports correctly alongside Chart of Accounts data.
- Edit classifications close button: The close button on the edit classifications dialog is no longer styled as the primary action.
- Invoice button heights: Invoice buttons now have consistent heights.
- Menu item overflow: Multiline menu items no longer overflow their containers.
- Anomaly detection alerts header: The page header above the anomaly detection alerts table no longer scrolls horizontally with the table.
- Bank Match Rules menu: Fixed the three dot menu not opening in Bank Match Rules.
8 new features, 3 improvements, 9 fixes
New features
- EBITDA account suggestions: The Chart of Accounts banner now pulls EBITDA category suggestions from live account data instead of a fixed sample list. The accounts you’re offered actually exist in your organization. The review drawer shows a confidence score for each suggestion instead of a current value, since suggestions only appear for accounts that don’t already have an EBITDA category set.
- Public API tax calculator: The tax calculator that powers the invoice tax field in the DualEntry UI is now available on the public API. You can calculate tax, apply it to invoice line items, and create or post the invoice from your own integration.
- Journal entry reversal exclusions: You can now set or clear aging exclusions on a reversal line independently of the original journal entry line. Previously, both lines always shared the same exclusion status.
- Ramp manual payment mapping: Ramp bill payments marked as paid outside Ramp now map to the GL account you choose instead of always posting to the system bank account.
- Delta billing for one-time obligations: Contract change orders that touch a one-time performance obligation now bill only the delta against the original amount, instead of rebilling the full obligation.
- ADP Workforce Now payroll integration: You can now connect ADP Workforce Now to sync payroll data and generate payroll journal entries automatically.
- Addepar integration: Addepar is now available in the integrations list, letting you connect with an API key pair to read portfolio data.
- Accounting Intelligence custom reports: Accounting Intelligence can now read and answer questions about your saved custom reports, using the same query, layout, and company scope you saved them with.
- Custom list view management: Money In and Money Out lists gain a Manage tabs menu for reordering, hiding or showing, setting a default, and deleting custom views. Inline rename for custom views (double-click or Options > Rename) is restored, and saving a view as new now opens rename automatically.
- Customer Deposit picker filters: The Customer Deposit form’s depositable items picker now supports filtering by date, currency, amount, ID, memo, customer, and vendor. This makes it easier to find the right item on organizations with a large volume of open items.
- Direct expense billable fields: Direct expense line items now expose billable fields (billable customer, project, and markup percentage) on the public API. An expense marked billable in DualEntry stays billable when created or updated through the API.
- Invoice group drag and drop: Dragging performance obligations into invoice groups during contract creation works again after it stopped responding in the revenue recognition drawer.
- Menu and dropdown positioning: Combobox and drawer menus, including the three-dot menu on Bank Match Rules, no longer render behind drawer content and open correctly.
- EBITDA Income Statement links: Account names and amounts on the EBITDA Income Statement no longer link to a details page that doesn’t exist for this report.
- Sticky list headers: Page headers on anomaly detection alert lists and the Inbox now stay pinned in view when you scroll a wide table sideways. Previously, they scrolled out of sight with the table.
- Bank Match credit account label: The credit account summary on Bank Match now shows the correct label.
- Bill approval preview validation: Previewing a bill approval with an invalid amount now returns a clear validation error instead of failing unexpectedly. Incomplete or empty amounts still preview normally.
- Payroll journal entry stability: Gusto and ADP payroll journal entries synced through Finch no longer get rewritten every day. Manual corrections you make to a payroll journal entry are preserved.
- Accounting Intelligence record detail size: Accounting Intelligence now caps the number of GL entry and item lines it loads for a single record and tells you when a record’s lines are truncated. Previously, it loaded every line on very large transactions.
- Integrations marketplace cleanup: Removed Plaid from the integrations marketplace, since your bank data already connects to DualEntry through Bank Connections.
9 new features, 3 improvements, 28 fixes
New features
- Recurring records: You can now stop a recurring transaction or edit its end date after it’s created.
- EBITDA income statement: Accounts tagged with an EBITDA category are now excluded from Expense and rolled into EBITDA. Exports and scheduled packages support the EBITDA income statement. Accounting Intelligence reads the same tags, and AI Insights suggests categories for untagged accounts.
- VAT setup: South Korea is now available in the VAT country dropdown, with default nexus and rate configured.
- Custom invoice templates: Templates now support a Stripe “Pay online” call to action and clickable checkout links in the PDF.
- Report Center and Dashboard: A new Period Lock preset category lets you jump directly to date ranges anchored on your companies’ locked-through dates.
- Customer and vendor lists: You can now bulk edit company access across multiple customers or vendors at once.
- HMRC integration: Calculate and Submit now wait for the request to finish instead of polling, so the return updates faster and the status reflects the actual result.
- Addepar integration: Connect Addepar from Settings > Integrations using an API key and firm ID.
- Statistical journals: You can now bulk recover statistical journal entries.
- Change orders: Contract change orders now support billing the full quantity of an obligation, not just the remaining quantity.
- Money-out lists: Bills, direct expenses, and vendor credits now show the expense account directly in list views.
- Customer credits: Customer credit PDFs now show a preview before sending.
- Bulk imports: Failed rows now show the actual reason a row was rejected instead of a generic “This row’s data is invalid” message.
- Rippling integration: W-2 account mappings now include debit and credit accounts, which were previously missing.
- Paper checks: Printing, deleting, and recovering paper checks now require the correct permissions, so view-only users can no longer perform these actions.
- Comparative reports: Removed an unused endpoint that let user-supplied company IDs bypass restricted-company access controls.
- Bank Match sync: Bank Match group search sync now caps how much work runs per pass and continues the rest in the background, preventing large syncs from overloading search.
- SFTP file pickup: Fixed the default timezone used for scheduled pickup times.
- Accounting Intelligence: Removed a leftover reference to outdated chat response wording.
- Fixed assets: The Asset Status filter now correctly filters results in the Overview and Archive tabs.
- Fixed assets: Asset classifications now appear on depreciation schedules.
- Chart of accounts: Fixed UI flickering when switching a record from view mode to edit mode.
- Intercompany journal entries: Fixed a crash that could occur while editing a duplicated entry, which required a reload and lost unsaved data.
- Items: The Language Code field no longer loses focus after you type a single character.
- Product tax codes: Fixed an error that prevented deleting a product tax code from the kebab menu.
- OCR: Fixed an issue where creating a new vendor during OCR processing did not work.
- Flux analysis: Fixed a mispositioned resize handle on the metadata drawer that closed the drawer when clicked.
- Custom reports: Fixed row ordering so custom reports no longer fail to match rows due to malformed keys.
- Budgeting: Fixed the Actuals fiscal year dropdown so changing the year now updates the selected data.
- Invoice and purchase order forms: The PDF preview now stays in view while you scroll the form.
- Avatars: Fixed avatars being squeezed out of shape in compact layouts.
- Nexus setup: Selecting a country in the New Nexus drawer no longer closes the drawer.
- Drawers: Dropdown lists and date pickers now open above drawer panels instead of behind them.
- Vendor payments: Fixed the currency symbol shown for Amount Paid on bank accounts in SGD or HKD, which previously displayed incorrectly.
- Breadcrumbs: Long sibling page names in the breadcrumb menu now truncate instead of overflowing.
- Customer records: Fixed an issue where clicking a company in form view mode opened a drawer over a 404 page.
- Accounting Intelligence: Fixed an issue where tool call messages referencing multiple MCP servers failed to display.
- Invoices: The Send reminder button now matches the height of other list toolbar buttons.
- Invoices: The Customize, Download, Send Invoice, and Reminders buttons on the invoice detail page now share a consistent height.
- Classifications: The close button in the Edit Classifications modal no longer looks like the primary action.
10 new features, 2 improvements, 32 fixes
New features
- EBITDA reporting: Assign an EBITDA category to any account from the chart of accounts list or account drawer, then view a dedicated EBITDA Income Statement report with reconciliation and P&L toggles. Accounting Intelligence can suggest EBITDA categories for untagged accounts for you to review and apply.
- Customer credits: PDF and email: Download a customer credit as a PDF or email it to the customer, matching the existing invoice and receipt workflow.
- Custom invoice templates: Pay Online: The Stripe Pay Online call-to-action on custom invoice templates is now clickable.
- AI Insights benchmark jobs: Rerun a failed benchmark question without restarting the whole job, and cancel a running job without losing the results already collected.
- MCP connectors: Enable an installed MCP connector directly from the connector list.
- MCP update_record tool: MCP agents can now update existing records, such as bills and customers, in addition to creating them.
- VAT country: South Korea: South Korea is now available in the VAT country dropdown during tax setup.
- Statistical journals: custom views: Save custom list views for statistical journals, matching the existing support for projects and customer statements.
- Statistical journals: bulk import: Import statistical journals in bulk instead of creating them one at a time.
- Billable fields on Direct Expense public API: Direct Expense create, update, and read now accept
is_billable,billable_customer_id,billable_project_id, andbillable_markup_pcton line items so partners can mark imported expenses as billable.
- Non-deductible VAT: VAT rate setup now supports non-deductible VAT, including a deductible percentage and GL account mapping. Empty tax asset and tax liability fields inherit the company’s nexus accounts, and a cost account is required when non-deductible is turned on.
- Bulk create-and-match: To Match filters: Bulk create-and-match jobs now respect the To Match filters and selected rules, and show a count of eligible bank transactions before you start a job.
- Approval workflow editor: The sidebar, search, and header are usable again while editing an approval workflow.
- Close checklists: The Not Started status filter no longer shows overdue records, and the Completed filter no longer includes Not Started records.
- Bank Match: The auto-tab date-range filter popover opens again, and pagination no longer fails on a page with no records.
- Customer and vendor exports: Overview exports no longer default to including archived customers and vendors.
- Records settings: The “Allow Modifications for Paid/Reconciled Records” toggle now reflects its saved state immediately, without a page reload.
- Chart of accounts, terms, and payment methods: The search field no longer loses focus after you run a search.
- Company records: The company page drawer opens correctly.
- Payment methods: Reopening a payment method now shows your saved changes without a manual refresh.
- Invoice PDFs: Restored the smaller company-initials logo size.
- Item receipts: Editing the quantity on an item receipt now reflects only the final quantity, instead of appending a reversal and rebook to the general ledger.
- Item receipts and fulfillments: Both now support custom fields.
- Purchase order lines: The line description now defaults from the item master.
- Report Center: Searching the Custom tab for a report that does not exist now shows a clear “no results” message instead of a filters message.
- Detail reports: The Amount column subtotal now includes the same foreign-currency conversion applied to its row cells.
- Report customization: Add row and Add column now open the customize drawer in front of the report builder instead of behind it.
- Flux analysis: Fixed the metadata drawer’s resize handle and border alignment.
- Bill entry: Creating a new vendor during OCR processing works again.
- Budgets: Changing the actuals fiscal year now refreshes the budget’s actuals figures without a page reload.
- Custom report builder: A formula placed inside a group now stays with that group’s account rows instead of printing above them.
- Fixed assets: The status filter on the Overview and Archive lists now filters correctly.
- GL impact: Standard GL impact views now show the classification column when classifications are present.
- Product tax codes: Create, update, and delete actions now show the specific validation error instead of a generic failure message.
- Dashboards: The tabs manage menu now lists Trash before the visibility toggle for custom tabs.
- Chart of accounts: Fixed the edit drawer remounting and losing state when switching from view to edit.
- HMRC VAT returns: Calculate and Submit now complete within the same request instead of appearing stuck while polling in the background.
- Bank Match: The DualEntry Transactions pane no longer repeats the same journal entry multiple times when many transactions share a date.
- NetSuite bill payments: Bill payments imported from NetSuite no longer fail when the same bill is referenced by two different identifiers.
- Ramp vendor payments: A payment error now appears immediately when a Ramp bill has not yet been approved in DualEntry, instead of the payment silently disappearing from the sync history.
- Customer and vendor creation via integrations: Customers and vendors created automatically during integration syncs now go through approval workflows when one is configured.
- Accounting Intelligence: The assistant now consistently identifies itself as Accounting Intelligence instead of Copilot.
- Accounting Intelligence drafts: Editing a customer or vendor after Accounting Intelligence has already saved it now updates the saved record instead of creating a duplicate draft.
- Accounting Intelligence chat: Restored the visible reasoning steps in chat responses for OpenAI-based models.
4 new features, 1 improvement, 11 fixes
New features
- Non-deductible VAT support: VAT rates can now override the tax asset and tax liability accounts for a nexus. When a rate is marked non-deductible, bills and other money-out documents split the VAT amount between a recoverable portion posted to the tax asset account and a non-deductible portion posted to a cost account. The VAT return reflects any account overrides you’ve set.
- Switzerland VAT support: You can now set up a Swiss nexus and post VAT for Switzerland, including standard, reduced, and exempt rate treatments.
- Company-restricted customers and vendors: You can now restrict access to customer and vendor records by company, including bulk updates to company access.
- Bank match assistant actions: Accounting Intelligence can now view bank transactions and their match status, inspect individual transactions and matches, and create or remove bank matches within your permissions.
- Tax posting detail: Tax records now show the general ledger posting detail when editing, including how VAT amounts split across accounts.
- Accounting Intelligence table links for fixed assets and contracts: Fixed asset and contract records shown in Accounting Intelligence table results now link to their record pages instead of displaying as plain text.
- AR aging report: The AR aging report no longer understates open customer credits when a credit has usage across more than one related transaction.
- General ledger detail: Journal entries with vendor-linked reversals no longer disappear when the report is filtered by vendor.
- Revenue and invoice waterfall reports: Revenue Waterfall and Invoice Waterfall detail views now show grand totals that foot correctly.
- Balance sheet detail: Balance Sheet detail exports and views now show a running balance subtotal on grouping rows.
- Custom reports: Cloned group rows in custom reports can now be reordered independently of their original row.
- Balance sheet report: Balance Sheet reports with company shown on rows no longer group balances under a generic company label.
- Bank reconciliation: The company filter on the reconciliation page now applies correctly instead of showing all accounts.
- Accounting Intelligence record lookups: Accounting Intelligence now resolves and displays records by their record code for organizations that use codes.
- Cash balance questions: Accounting Intelligence now answers cash balance questions directly instead of redirecting to record lookups.
- AI integration settings: Turning off a write action for a connected app, such as Gmail, now stays off after saving instead of re-enabling itself.
8 new features, 7 improvements, 26 fixes
New features
- Task preparer and reviewer: You can now assign a preparer and reviewer to custom close tasks.
- Bank Match vendor credit type: You can now match a vendor credit as a transaction type in Bank Match.
- Report renaming from the row menu: You can now rename a saved report directly from its row menu instead of opening the report first.
- Sage 50 migration: You can now migrate data from Sage 50 during onboarding.
- Customer credit email delivery: You can now send a customer credit to the customer by email directly from DualEntry.
- Deel G2N reports: You can now generate gross to net reports for payroll data imported from Deel.
- Statistical journal bulk archive and recover: You can now bulk archive and recover statistical journals instead of updating them one at a time.
- Contract termination calculations: Contract termination amounts are now calculated per account based on what remains to refund or accelerate on each invoice and revenue recognition schedule, supporting manual invoices and the drawdown usage method.
- Company access search: You can now filter by search when managing company access, making it faster to find the customer or user you need.
- Accounting Intelligence voice input: Accounting Intelligence now accepts voice input through speech transcription.
- EBITDA category on accounts: Accounts now support an EBITDA category field (Interest, Taxes, Depreciation, or Amortization) available in the UI, API, exports, and bulk import.
- Report expansion level persists: Reports now remember the expansion level you last set instead of always opening fully expanded.
- Checklist task company scope: Checklist and template tasks now support an all-company scope in addition to being assigned to specific companies.
- AR dunning recovery and status filter: AR dunning configurations now support recovery settings and a status filter to find configurations more easily.
- Code column for master records: Master record lists now display a code column so you can identify records more easily.
- Bank Match suggestions stay in sync: When you post a draft accounting entry outside Bank Match Auto, the related suggestion now updates immediately and shows Match instead of Post & Match.
- Stripe Cash App payment methods sync correctly: Stripe payment method sync no longer fails for customers who pay with Cash App.
- Accounting Intelligence answers match the requested breakdown: Accounting Intelligence now returns the correct per-customer or per-vendor aging breakdown for accounts receivable and payable requests. It also keeps vertical analysis and gross margin trend answers accurate. Single-entity aging figures now show the entity’s own currency instead of the organization’s predominant currency.
- Custom report formulas stay in place: Formulas inside a group with Show total turned off no longer get reparented to the outer group when you run the report.
- Accounting Intelligence payment party prefill: Accounting Intelligence now fills in the vendor or customer field automatically when applying a payment to an invoice.
- Waterfall and rollforward reports respect filters: Waterfall and rollforward reports now correctly apply the filters you pass in instead of discarding them.
- Accounting Intelligence delete and void requests: Accounting Intelligence now archives records when you ask to delete or void them instead of refusing the request.
- Restricted company search results: Global search results now respect restricted company access instead of returning results from companies you can’t access.
- Bill.com vendor payment accounts sync correctly: Vendor payment posting accounts now sync correctly with Bill.com instead of duplicating archived accounts.
- Stripe Pay Online link on invoice PDFs: Downloading or sending an invoice PDF no longer fails to include the Stripe Pay Online link.
- Accounting Intelligence renders waterfall and rollforward artifacts: Accounting Intelligence now renders revenue waterfall and rollforward report artifacts directly in chat instead of failing to load them.
- Accounting Intelligence table artifacts with incomplete filters: Accounting Intelligence table artifacts no longer fail to load when they include an incomplete filter definition.
- Reversal entries keep customer and vendor: Reversal entries now carry the customer or vendor from the original entry so GL and aging reports reconcile correctly.
- Transaction view attachments: You can now download attachments from the Transaction view instead of only from the Journal Entry view.
- Term archive failures now show: Bulk archiving a term now shows an error message when the term is in use instead of reporting success.
- Search field focus retained: Search fields on Chart of Accounts, Terms, and Payment Methods no longer lose focus after you search.
- Consolidated exchange rates navigation: Consolidated exchange rates now navigate on a single click instead of requiring two.
- Nexus creation: Creating a non-US nexus no longer fails.
- Customer deposit account validation: The Other tab on customer deposits now validates the account correctly.
- Rows per page menu closes: The rows-per-page dropdown now closes after you make a selection.
- Xero migration brings in customers: Migrating from Xero now brings in customers.
- Custom report subtotal accuracy: Detail report subtotals no longer include untranslated foreign currency amounts alongside converted rows.
- Organization settings toggles stay in sync: Organization preference toggles now stay in sync after you save instead of requiring a page reload.
- Restricted dashboard widgets: Dashboard widgets you don’t have permission to view now show an access restricted message instead of a retry option that never works.
- Dashboard controls match the metric: The dashboard widget editor now hides controls that don’t apply to the selected metric.
- Accounting Intelligence statistical account balances: Accounting Intelligence now returns the correct headcount and other statistical account balances instead of failing to route the request.
9 new features, 6 improvements, 25 fixes
New features
- Tax exempt amounts in GST/VAT calculations: Tax on native GST and VAT lines now honors an exempt amount. DualEntry calculates tax as the rate applied to net minus the exempt amount, and the gross total continues to reflect net plus tax.
- Usage drawdown for contracts: Revenue recognition contracts support usage drawdown, including a top-up endpoint and a check that blocks usage when funds are insufficient. Change orders and autorenew for usage drawdown are not yet supported.
- Sage 50 migration support: Sage 50 is now available as a migration source when onboarding.
- Dropbox file uploads for Accounting Intelligence: Accounting Intelligence can now save Excel and other binary files directly to Dropbox, resolving a previous limitation that only allowed text file saves.
- Field-level strictness controls for close checklist tasks: A new organization-level strictness setting, along with per-record-type and per-field policy configuration, lets you control which fields are enforced before a close checklist task can be marked done.
- Item translations on invoice templates: Invoice templates now support translated item names, so invoices can display item descriptions in the customer’s language.
- AR dunning reminder configuration by company: Accounts receivable dunning reminders can now be configured per company, controlling how and when reminder invoices are sent.
- Vendor credit create-and-match in Bank Match: You can create a vendor credit directly from an unmatched bank line in Bank Match, with the bank account and amount pre-filled, and match it immediately. Existing vendor credits can also be matched from Bank Match.
- Template-aware invoice PDFs with service period: Invoice PDFs now reflect the invoice template’s layout and include the service period on each line.
- For Approval counts in Bank Match: Bank Match account totals now show how many items are waiting in For Approval for each bank account, alongside the existing Auto and To Match counts.
- Faster Recents updates in Accounting Intelligence: The Recents list now shows a generated chat title as soon as it’s ready, without requiring a page reload.
- Activate and inactivate fully amortized fixed assets: You can retire a fully amortized asset to Inactive from the asset list or detail view, and reactivate it later. The asset detail view now shows a status badge.
- Report Center remembers your last date preset: Report Center now remembers the date preset you last used for each report, instead of resetting to year to date every time you open it.
- Tax rate details in the tax rate selector: The tax rate selector on invoice and bill lines now shows rate details on hover or focus, making it easier to confirm the correct rate without leaving the line.
- Account renumbers in bulk import field mapping: The bulk import field mapper now supports account renumbering during chart of accounts migrations.
- Stripe invoice payment status accuracy: Stripe invoice payments now reflect the current state of their parent invoice instead of stale status text, so payments only show as skipped when the invoice itself is skipped.
- Deel sync performance: Deel data syncs run faster by avoiding unnecessary database locks on records that are already up to date.
- Consolidated payroll journal entry reliability: Fixed an error that could occur when payroll journal entries needed to update bank reconciliation items that had been removed.
- Xero purchase order import: Purchase orders imported from Xero with free (zero-amount) lines no longer fail entirely. The paid lines now import successfully and free lines are skipped.
- Xero customer migration: Customers now import correctly during Xero migrations instead of being silently skipped.
- Financial connection refresh reliability: Temporary conflicts during scheduled bank connection refreshes are now handled gracefully instead of being reported as errors.
- Bank Match sync performance: Bank Match group searches run with lower database load, improving responsiveness during matching.
- Vendor payment and bill line import reliability: Fixed an issue where a failed line import could leave the import process in a bad state and affect later records.
- Meld transaction sync speed: Historical transaction syncs from Meld run significantly faster, resolving slow lookups during large syncs.
- Brex expense sync reliability: Fixed a decoding error that could interrupt Brex expense syncs. Vendor names that differ only by case or spacing are now matched to the existing vendor instead of creating duplicates.
- QuickBooks Online address sync performance: Customer and vendor address backfills from QuickBooks Online now run in batches instead of one query per record, improving sync speed.
- Sandbox provisioning reliability: Sandbox setup no longer sends duplicate invites to existing users when a lookup temporarily fails.
- Vendor payment import check number updates: Bulk vendor payment imports can now update the check number by matching on the payment ID.
- Ramp receipt sync: Ramp syncs no longer repeatedly attempt to fetch receipts when the connected account lacks permission to read them.
- Login audit logging: Fixed an error that could stop login audit logging when session data was missing an IP address or user agent.
- Audit Trail login browser and OS display: The Audit Trail Logins view now parses the browser and operating system from the login’s user agent instead of showing the raw string. This matches the display already used in Personal Settings.
- Currency and account fields on list views: Fixed an issue where currency and account fields showed as blank on some list views.
- Inbox count after direct approval: Approving a bill directly from the record view now updates the inbox count and tag immediately, instead of only updating after visiting the list view.
- Approval workflow setting persistence: The approval workflow setting in Settings no longer reverts to its previous value after navigating away and back.
- Attachment downloads in the inbox drawer: Fixed an issue that blocked downloading attachments from the inbox drawer.
- Account list filtering accuracy: Account selection on other-tab fields now correctly filters by company access, inactive status, bank and credit card currency and company, and system retained earnings accounts.
- Bank Match bulk rule application: Bulk-applying a Bank Match rule no longer silently drops bank statements that the rules lookup failed to return.
- Amortization approval list load time: The amortization approval list now prefetches account data in a batch instead of issuing a separate request per row, reducing load time.
- Three-way match report vendor name: The three-way match report now displays the vendor name on each line instead of leaving it blank.
- Stripe payment for unmapped or pre-cutoff invoices: Stripe customer payments applied to an invoice that isn’t mapped or that predates the migration cutoff no longer hard-fail. DualEntry now falls back to recording the payment as a prepayment.
2 new features, 1 improvement, 7 fixes
New features
- Accounting Intelligence can update vendors, customers, and items: The Accounting Intelligence and MCP server can now update existing vendor, customer, and item records, not just create them, including setting the revenue recognition method on an item during a bulk update.
- Accounting Intelligence can read prior session data during delegation: When a specialist agent takes over an Accounting Intelligence session, such as a bulk upload, it can now read the full data from a prior artifact instead of only a three-row preview. You no longer need to re-upload data that already exists in the session.
- Account renumbering in bulk import: The bulk import field mapper now supports renumbering multiple accounts, matching the capability already available in chart of accounts.
- Stripe connection: Fixed an issue that could prevent a Stripe account from connecting successfully.
- Ramp integration audit trail: Ramp classification syncs no longer create repeated, unnecessary edit entries in the audit trail for bills that did not actually change.
- Direct expense sync currency mismatch: Fixed a “base currency balance mismatch” error that could occur when syncing direct expenses through the public API.
- Fund entity classification deletion error: The error message shown when deleting a Fund Entity classification fails now more clearly explains the problem.
- Accounting Intelligence links to the app: Fixed cases where the Accounting Intelligence’s links to specific screens in DualEntry did not render correctly when the underlying text was escaped or used a full URL.
- Accounting Intelligence data access controls: Fixed an issue where an Accounting Intelligence query could return data from another organization instead of being properly restricted to your own.
- Bank match streaming: Fixed an issue where live progress updates for a create-and-match job did not stream correctly.
7 new features, 6 improvements, 26 fixes
New features
- Invoice reminder exclusions and org-wide scheduling: You can now exclude specific customers or invoices from AR dunning reminders, and configure a reminder schedule that applies across your organization. A company-level schedule takes priority over the org-wide one when both exist.
- Manual contracts in integration source filters: The integration sources filter now supports manual contracts, so you can filter by this source alongside your other connected integrations.
- Accounting Intelligence actions for non-admin roles: Non-admin roles that could already view Accounting Intelligence conversations can now create, edit, and archive them as well.
- Archive endpoint for contract change orders: The v2 contracts API now includes an endpoint to archive contract change orders.
- NetSuite expense report imports: NetSuite expense reports now import through the Rutter integration and are classified as bills or direct expenses. Vendor payments can apply to these expense reports even when no linked bill is present.
- Archive shortcut for currency revaluations: You can now archive currency revaluations from the bulk actions footer using a keyboard shortcut, matching the existing invoice archive behavior.
- Optional Created By column on journal entries: The Created By column on the Journal Entries list is now hidden by default and can be shown when needed.
- Subsidiary navigator dashboard data: Dashboard and preview widgets now return company data for the subsidiary navigator, limited to companies that you can access, that are active, and that aren’t elimination entities. Saved tree, list, and recent-view widgets keep their configuration when this data loads.
- Avalara Canada GST calculations: Avalara-calculated taxes now support GST components for Canadian tax rates, including an improved view of the tax rate when editing.
- Reference number on bills: The bills list now shows the vendor’s reference number, so you can find a bill by the vendor’s invoice number.
- Revenue recognition and fixed asset reports in the Report Center: The Report Center now lists the revenue recognition and fixed asset reports that were previously only available through report packages.
- Field-level side-by-side mapping: Field mapping now supports comparing and mapping individual field values side by side.
- Clearer error when deleting an in-use classification: Deleting a classification dimension that’s still referenced, such as by bills or other linked records, now returns a clear message. The message tells you to remove the dimension from anything referencing it before trying again.
- Bank reconciliation cleared balances: Cleared bank reconciliation lines from the wrong account no longer affect the starting balance of later months. DualEntry includes a cleanup process to correct any reconciliations that were already affected.
- Currency revaluations excluded from bank match: Currency revaluation entries no longer appear as candidates in bank matching, and bank match filters now show the correct list of valid transaction types.
- Customer retained on deposited payments: Customer payments that are deposited through Undeposited Funds now keep their customer association on the general ledger, so cash reporting by customer no longer shows these amounts as “No Customer.”
- QBO AR/AP account remaps applied on re-import: Re-importing QuickBooks Online bills, invoices, and payments after changing your AR or AP account mapping now updates the general ledger to the new account. Previously, the general ledger stayed on the original account.
- Faster and more reliable QBO migrations: Migration imports for QuickBooks Online run faster and no longer fail when a purchase or payment record is missing certain account fields. Long-running imports now show progress instead of appearing stalled.
- Accounting Intelligence account lookups: Fixed an issue causing Accounting Intelligence to fail when looking up accounts during chat responses.
- Accounting Intelligence record edits: Fixed an issue where record-editing actions from Accounting Intelligence could look up the wrong record.
- Accounting Intelligence citation links: Links generated by Accounting Intelligence with extra spacing now display correctly as clickable citations instead of plain text.
- Faster response timeouts on data migrations: Slow requests during onboarding data migrations now time out and retry automatically instead of hanging until they’re forcibly stopped.
- Balance sheet and ledger detail errors on cyclic account hierarchies: Balance Sheet, General Ledger, and Trial Balance detail and summary views no longer error out when a company’s chart of accounts contains a cycle in its parent account hierarchy.
- QuickBooks invoice import reliability: QuickBooks invoice imports now reconnect and retry automatically if the connection is interrupted mid-import, instead of failing outright.
- Flux explanation exports for cumulative periods: Exporting a flux report with explanations to Excel or PDF now shows explanations for the period you selected, including year-to-date and other cumulative comparisons that previously came out blank.
- Clearer skill title validation error: Accounting Intelligence skill titles with trailing spaces now fail validation with a clear, actionable error message instead of an unhelpful one.
- Skill chip popover in scheduled agents: The skill chip popover now appears correctly when composing a scheduled agent, matching the standard composer.
- Accounting Intelligence tool call display: Accounting Intelligence responses no longer show raw tool call content blocks in the conversation view.
- Intercompany journal entry validation: Customer and vendor fields on intercompany journal entries no longer show validation errors when those fields aren’t marked as required.
- Onboarding checklist dismissal applies org-wide: Closing the onboarding checklist now dismisses it for the whole organization instead of only the current user.
- Ownership filter button now responds to clicks: The Type and Company filter buttons on the Ownership pages now open their filter panels as expected.
- Ownership status label follows the toggle: The owner status label in the New Owner and Edit Owner drawers now reflects the actual active or inactive value instead of always showing “Active.”
- Consistent search box height in Data Analytics: The report library and field-picker search boxes in Data Analytics now match the height of the other toolbar controls.
- Unsaved changes badge position in the report builder: The “Unsaved changes” badge in the Data Analytics report builder no longer shifts the report title sideways when it appears.
- Bank transfer account details restored: Bank transfer lists now show the sending and receiving account name, number, and currency again.
- Company access enforced when creating records: Creating an invoice or other record for a company you don’t have access to now returns a validation error instead of allowing the record to be created.
- GST rounding on compound tax rates: Direct expenses with compound GST rates, such as combined GST and PST, no longer fail to post due to rounding mismatches between the parent tax and its components.
- Deel payslips no longer attached to journal entries: When personally identifiable information (PII) access is disabled for your Deel integration, DualEntry no longer attaches individual payslip PDFs to journal entries.
- Faster bank match list loading: The Bank Match list and count now load faster, with the same search results as before.
15 new features, 22 improvements, 52 fixes
New features
- Inline citations in Accounting Intelligence: Citations that link to in-app pages now render as inline navigation links instead of external references.
- Custom invoice email subject and content: Companies with custom email settings now send invoices using their own subject and content instead of always inheriting organization defaults.
- Item receipts pre-populated from purchase orders: Creating an item receipt from a purchase order now pre-fills the Items table with rates, leaving quantity blank for entry.
- Locations list nesting: The Locations list view now nests Aisles under their parent Warehouse for easier navigation.
- Unique invoice template names: Invoice templates now require unique names, preventing accidental duplicates.
- Automatic payment reminders: You can now configure automatic reminder emails that go out on a schedule for unpaid invoices.
- Contract edits reuse invoice lines: Editing a contract now reuses existing invoice lines where possible instead of always generating new ones.
- Bulk import allocation schedules in migrations: Allocation schedules can now be bulk imported during migration mapping instead of entered one at a time.
- Bank match rules by transaction date: Bank match rules can now compare the financial transaction date as a matching condition.
- Multiple classifications per account mapping row: Migrations now let you assign multiple classifications to a single account mapping row instead of one at a time.
- SFTP import retry: SFTP-based imports now automatically retry after an import failure instead of requiring a manual re-run.
- Record sequencing for allocation: You can now enable record sequencing for code sequence allocation.
- Vendor Credit as a bank match transaction type: Bank Match can now create and match transactions as Vendor Credits, the same way it already works for other vendor payments.
- Manual invoice reminder sending: You can now send invoice reminder emails manually, either for a single invoice or in batch.
- Manual source filter for contracts: Contracts can now be filtered by manual integration source, in addition to filtering by a specific third-party source.
- Accounting Intelligence renamed: “Accounting Copilot” is now called “Accounting Intelligence” throughout the product.
- Accounting Intelligence page width: Skills, Scheduled Agents, Artifacts, and Connectors pages now cap at a readable width on large screens instead of stretching edge to edge.
- Evaluation answer type descriptions: Evaluations now show answer type descriptions pulled directly from the API.
- Bank match rules by check number: Bank match rules can now use check number as a matching condition.
- Journal entries “Created by” column: The journal entries list now shows who created each entry.
- Purchase order item quantity received: The Items table on purchase orders now includes a “Quantity received” column.
- Report Center filter search: The ”+ Add filter” dropdown in Report Center now includes a search box so you can find filters by keyword.
- Custom invoice template improvements: Invoice templates now support a customizable Text block, row-based drag-and-drop reordering, multi-column cards in callout blocks, and improved footer, field, and block editing.
- Task pagination: Tasks now load with pagination for better performance on large lists.
- Task kebab menu: Tasks now include a kebab menu with additional actions.
- Data Analytics filters relocated: Report filters in Data Analytics now appear above the results, matching the layout used elsewhere in Reports.
- Accounting Intelligence anomaly detection: Accounting Intelligence can now list, propose, dismiss, and restore transaction monitor alerts and detectors directly in conversation.
- Bank match rules by payee: Bank match rules can now use payee as a matching condition.
- Approval section on Customer and Vendor pages: Customer and Vendor pages now include an approval section.
- Consolidated exchange rate filters: The consolidated exchange rates view now supports From and To currency filters along with a filter for currency mismatches.
- Simplified invoice template editor: The invoice template editor no longer shows a redundant Custom Field block, reducing duplicate options when building a template.
- SFTP file download links: SFTP-based imports now include direct download links for the source files.
- Saved reports with permissions in Data Analytics: Data Analytics now supports saved reports with configurable visibility and permissions.
- Item fulfillment costing fields removed: Item Fulfillment no longer shows Rate, Amount, and Tax fields, preventing manual overrides of item costing.
- Bank Match “Awaiting GL link” status: Bank Match now shows an “Awaiting GL link” status for unlinked bank feed transactions, making them easier to find and resolve.
- Contract obligation defaults from item catalog: Contract obligations now inherit Classification, Revenue Recognition Method, and Invoice Frequency from the item catalog when those fields are left unset.
- Field value level mapping in migrations: Migrations now support field value level mapping, letting you map a set of third-party values to a set of DualEntry values side by side.
- Recognition batch edit action: Clicking edit on a recognition batch now opens the edit page instead of redirecting to the overview tab.
- Contracts list flashing: The contracts list dashboard no longer remounts and flashes when switching between status tabs.
- Intercompany journal entry validation: Customer and Vendor fields on intercompany journal entries no longer show validation errors when they aren’t marked as mandatory.
- Purchase order line validation message: Purchase order item line validation now shows a clear, user-friendly message instead of a raw technical error.
- Data Analytics pivot measure loss: Turning on “Pivot last grouping into columns” no longer silently discards measures without indicating what happened.
- Data Analytics formula errors on removed columns: Removing a column referenced by a formula now raises a clear error in the formula editor instead of silently treating the missing value as zero.
- Data Analytics drag-and-drop highlighting: Dragging a column no longer incorrectly highlights a drop target in the unrelated Grouping list.
- Data Analytics builder loading state: The report builder’s loading skeleton now fills the full page height and includes a header placeholder, instead of collapsing to a third of the page.
- Data Analytics Save button: Save now actually persists report changes and clears the “Unsaved changes” badge only after saving, instead of discarding changes silently.
- Role filter chips: Role filter chips now display the exact role name instead of a mismatched label.
- Resizable panel behavior: Resizable panels now show a clearer disabled state, correct grip positioning, and smoother transitions.
- Guided tour capitalization: The guided tour now capitalizes “Entity Tree” correctly.
- Accounting Intelligence alerts modal layout: The Duplicate Detector Alerts modal no longer has excess top padding or clipped columns.
- Accounting Intelligence URL cleanup: Accounting Intelligence page URLs no longer include an unnecessary “v2” segment.
- Unit quantity grammar: Labels referring to quantity of units now use correct grammar.
- Stepper spacing: Increased right padding on the stepper component for better readability.
- Custom report duplicate sections: Custom reports built with a Group row that pulls in a section by account type no longer duplicate every line in that section.
- Custom report Retained Earnings row: An Account row referencing the system Retained Earnings account no longer shows $0 on custom reports.
- Avalara transaction push setting: Avalara transaction push now correctly respects the disabled setting instead of continuing to push transactions.
- Non-US tax nexus setup: Creating or updating a non-US tax nexus now requires a tax asset account, and creating a duplicate nexus for the same country or region returns a clear error.
- Bill search after approval: Approving a bill now reliably surfaces it in vendor name search results, instead of occasionally missing it due to search index lag.
- Fixed asset duplicate detection: Duplicate detection for fixed assets now also covers amortization schedules and ramp assets.
- Approval workflow setting: Approval workflows now correctly read the enabled setting, fixing cases where approvals were treated as disabled even when turned on.
- QuickBooks migration reliability: Large QuickBooks Online syncs no longer stall on oversized batches, and purchases missing a mapped bank or credit card account now fail with a clear message instead of importing with an invalid account.
- QuickBooks AR/AP account mapping: Bills, invoices, and payments imported from QuickBooks Online now post to your mapped Accounts Receivable and Accounts Payable accounts instead of falling back to default system accounts.
- Consolidation exchange rate gaps: Consolidation runs now correctly carry over historical exchange rates that were missing from the cache, instead of failing or leaving pins unset.
- Accounting Intelligence artifact downloads: Downloading artifacts in Accounting Intelligence no longer fails with a 502 export error.
- Direct expense edit page load time: The direct expense edit page now loads significantly faster.
- Migrations empty tabs: When there are no classifications, vendors, items, or customers to review, migrations now show an empty tab instead of hiding it.
- Migrations skip option: Migrations no longer show “Skip” as an option for a transaction that has already synced.
- Intercompany journal entry line actions: Add new line and bulk actions on intercompany journal entries are now left-aligned to match journal entries, and the “Add company” action uses a less prominent style.
- Bank transfer receiving amount sorting: The receiving amount column on bank transfers is now sortable.
- Item receipt purchase order field position: The purchase order field on the item receipt view now appears at the top of the form instead of further down.
- Toast notification styling: Toast notifications now use consistent press, width, and loading behavior, including a proper loading indicator.
- Button icon shrinking: Buttons with icons no longer shrink unexpectedly when space is constrained.
- MCP consent form submission: The MCP consent page no longer blocks form submission due to a browser security policy error.
- Integration connect redirects: Connecting to Rippling, Stripe, Deel, or Salesforce now redirects correctly instead of triggering a browser security error.
- Invoice template block reordering: Moving invoice template blocks using the arrow controls now works correctly.
- Report builder title spacing: The Data Analytics report builder title now has proper spacing above the filters and configuration panel.
- Custom report builder row order: Saving or running a custom report now preserves the row order shown in the builder instead of moving new rows to the bottom.
- Accounting Intelligence panel background: The Accounting Intelligence panel now shows a background on initial load instead of overlapping the Bank Match rule detail panel.
- Accounting Intelligence drawer header button: The “Open in Copilot” button in the drawer header no longer gets cropped when the header shrinks.
- Vendor credit validation error: Vendor credits no longer trigger a validation error when saving.
- Item fulfillment memo field: The Memo field on item fulfillments is now optional instead of required.
- Onboarding checklist completion: Completing every item in the onboarding checklist now ends the checklist automatically, and the “Close Checklist” option is easier to find.
- Income Statement item filter: The Income Statement item filter no longer excludes Item Fulfillment COGS lines that contain the filtered item.
- Onboarding checklist dismissal scope: Dismissing the onboarding checklist now dismisses it for the entire organization instead of only the current user.
- Snowflake export stuck syncing: Snowflake exports no longer get stuck indefinitely on “Preparing sync…” when a prior export job is left in a stale state.
- Amortization schedule duplicate lines: Amortization schedules no longer generate duplicate lines that caused GL imbalances.
- Brex vendor import failure: Importing Brex transactions no longer fails when a vendor name isn’t formatted as text.
- Accounting Intelligence streaming errors: When a streaming response is interrupted, Accounting Intelligence now retries only the affected part of the answer instead of leaving a partial or garbled response.
- Daily brief quick action routing: The “What should I look at today?” quick action now routes to SQL analytics instead of anomaly detection.
6 new features, 12 improvements, 17 fixes
New features
- Payee condition for bank match rules: You can now set a Payee condition when creating bank match rules, giving finer control over how transactions are matched.
- Accounting Intelligence rebrand: Accounting Copilot is now named Accounting Intelligence throughout the product, including menus, panels, and error messages.
- Completed approval sections hidden: Approval workflows now hide sections that are already completed, so you see only what still needs action.
- SFTP download links: You can now download files directly from SFTP transfer links during onboarding.
- FX rate table in the UI: You can now view the FX rate table directly in the product instead of relying on the API alone.
- Reconcile workbook file naming: Reconcile-from-API downloads are now named with the customer and date instead of a generic file name.
- Bank match rule notifications: Bank match rules now include a notifications tab, a pending indicator dot on the Bank Match Rules button, and the ability to dismiss individual notifications.
- Multiple classes on account mapping: Account mapping now supports selecting multiple classes for a single mapping.
- Allocation schedules in bulk import: Bulk import now supports allocation schedules as an import type, and takes you to the schedule list after a successful import.
- Paginated account and budget lookups: Account and budget lookup lists now load with pagination, improving performance on large organizations.
- Account renumbering preview: Organization settings now display a read-only preview of the account number length before you save changes.
- Migration status page: When a data migration tab has no data, DualEntry now shows an empty state page instead of redirecting you away.
- Skip removed for synced transactions: The skip option no longer appears for transactions that are already synced, preventing accidental re-processing.
- Bank Match awaiting GL link state: Bank Match now shows a distinct “Awaiting GL link” status for transactions whose bank feed is not yet linked to a GL account, so these transactions no longer inflate your unmatched count and are clearly actionable.
- Created By column on journal entries: The journal entries list now shows who created each entry.
- GST support for India: Tax calculation now supports Indian GST, including same-state CGST and SGST splits.
- Consolidated rates matrix filters: The consolidated rates matrix now includes From and To currency filters, plus a filter for currency mismatches.
- NetSuite expense report links: Migrated NetSuite records now include a direct link to the corresponding expense report in NetSuite.
- Duplicate Detector Alerts modal: Fixed a layout issue causing excess top padding and clipped columns in the AI Duplicate Detector Alerts modal, and moved the alerts table to its own page.
- Direct Expenses edit page performance: Fixed slow loading times on the Direct Expenses edit page.
- Excel file download errors: Fixed an error that caused generated Excel files to fail downloading with a server error.
- Invoice template custom field block: Removed a broken custom field block option from invoice templates that could produce incorrect output.
- SFTP transfer retries: Fixed an issue where failed SFTP transfers did not retry correctly during onboarding.
- Bank Match group search speed: Bank Match matched-group search now returns results faster for large organizations.
- Bank match notifications list: Fixed an issue that caused the bank match notifications list to always appear empty.
- Code sequence error messages: Validation errors for code sequence patterns now include the existing padding and starting value, making it clear why a change was rejected.
- Item selector with missing exchange rates: Fixed an issue where the item selector failed entirely when a same-second-price exchange rate was unavailable; items remain selectable and rates prefill only when a conversion exists.
- Export job permissions: Fixed an issue where export jobs did not enforce per-type permission checks, which could allow a cross-user download outside your organization.
- QuickBooks migration attachments: Fixed an issue where some QuickBooks entries did not bring their attachments over during migration.
- QuickBooks migration tax matching: Fixed an issue where historical bills could be matched to the wrong tax rate because the effective date of the rate was not considered.
- Reconcile from API company scoping: Fixed an issue where reconciling from API compared figures against an entire organization instead of only the connected company.
- “Do not expand” setting: Fixed an issue where the “do not expand” setting failed on basic report rows.
- Fixed asset disposal: Fixed an issue where disposing of a fixed asset in the current month could be blocked by an incorrect locked-period error, fail to calculate accumulated depreciation, or skip intercompany automation.
- Accounting Intelligence chat reliability: Fixed an issue where a search error during an Accounting Intelligence response could abort the entire chat turn instead of the current step.
- Accounting Intelligence record editing: Fixed an issue where editing a record found through search in Accounting Intelligence could fail to apply to the correct record.
22 new features, 11 improvements, 40 fixes
New features
- Tiered usage pricing: You can now price usage performance obligations with flat, graduated (tiered usage), volume (all units), and volume/block models, and reconcile related usage amounts with a dry-run preview.
- Multi-contract usage bulk import: You can upload usage for many contracts in one bulk import file, mapping each row by contract and item/SKU. Export contracts or performance obligations from the Contracts list to build that mapping file.
- Multi-year ramp deals: You can model the same product at a different rate each year as grouped year performance obligations with equal SSP across the ramp.
- Recognition frequency and intervals: You can configure recognition frequency and interval on each obligation for cadences such as every other week, every other month, or every five months, independently of billing.
- Contracts list revenue dashboard: You can add up to three summary contract metric widgets on the Contracts overview list; widgets follow the same company, customer, and date filters as the list.
- Draft change orders: You can save incomplete change orders as drafts (including those created by integrations), see draft badges on the contract Change Orders tab, and complete them when the remaining fields are known.
- Custom PDF invoice fields: You can now add additional fields, such as company address, to custom PDF invoice templates.
- Copilot in-app links: The AI copilot now links directly to the relevant page in the app when answering questions about DualEntry or your data, so you can jump straight to where you need to go.
- Company-level invoice email templates: You can now set a custom email subject and content for invoices at the company level, instead of relying on the organization-wide default.
- Live bulk job progress for rules: The create-and-match bulk job status now streams incremental progress updates for rule-based jobs, so you can track completion in real time.
- Reconnect Brex from settings: You can now reconnect your Brex integration directly from Settings without going through the initial onboarding flow.
- SFTP pickup history: You can now view the pickup history for files delivered through SFTP.
- Invoice template text tiles: You can now add a text tile element to invoice templates.
- Invoice template vertical drag and footer fields: You can now drag elements vertically in the invoice template editor and add fields to the footer.
- Invoice template field reordering: You can now reorder fields within an invoice template.
- Transaction monitor detector exclusions: You can now manage AI detector exclusions directly in the transaction monitor.
- Reconciliation multi-select: You can now reconcile multiple transactions at once by holding Shift and selecting them, similar to Bank Match.
- Immutable posted records setting: You can now enable a setting that prevents posted records from being edited after posting.
- Salesforce contract trigger settings: You can now configure general-purpose contract trigger settings for your Salesforce integration.
- Role name filtering in API: The roles API now supports filtering results by role name.
- Paginated contract usage and workflow endpoints: The contract usage and workflow version and action API endpoints now support pagination instead of returning unbounded lists.
- FX rate table access: You can now view and retrieve exchange rate history through the app and the API instead of only seeing the current rate.
- Expanded audit trail coverage: The audit trail now records intercompany journal entry unmatches that occur when a company is removed, and tracks bank match status changes on transactions.
- Filter type search: The “Add filter” dropdown now includes a search box, so you can quickly find a filter type instead of scanning the full list.
- Bulk import create or update choice: The field mapper for bulk imports now lets you choose whether records are created or updated during import.
- Bank match tour auto suggestions: The bank match tour now preselects a company and account with auto suggestions to help you get started faster.
- Invoice template multi-column cards: Invoice templates now support multi-column cards inside callouts for more flexible layouts.
- Field mapping fixed values: Field mapping rows now support setting a fixed value instead of mapping to a source field.
- Scheduled agent run now: Scheduled agent cards and drawers now include a Run Now button to start a run immediately instead of waiting for the next scheduled tick.
- Purchase order Closed and Cancelled statuses: Purchase orders now support Closed and Cancelled statuses.
- Salesforce multi-tab field mapping: Salesforce field mapping now supports multiple tabs for items, contracts, and performance obligations.
- Journal entry created by column: The journal entries list now shows who created each entry, and you can filter and sort by that column.
- Sequential and in-place contract change orders: Contract change orders now support multiyear sequential obligations and in-place changes, instead of always splitting into a predecessor and successor obligation.
- Cash flow statement answers from copilot: The AI copilot now runs the cash flow report directly instead of piecing one together from other data, giving more accurate answers to cash flow questions.
- Copilot vendor and customer matching: The AI copilot no longer confuses a company name with a vendor when answering bill-related questions, and now verifies its company matches more carefully.
- MCP authorization consent page errors: Fixed an issue where the MCP consent screen intermittently showed “This authorization request is invalid or expired” even when the authorization was valid.
- Invoice email template names: Invoice email templates now require unique names, preventing accidental overwrites.
- Custom report builder save behavior: Saving changes to an existing custom report now updates that report instead of creating a new one.
- Intercompany journal entry line validation: Intercompany journal entry lines no longer require a customer or vendor to be set, removing an incorrect validation error.
- Field mapping filter toolbar: The filter toolbar in field mapping now stays pinned in place while the table scrolls.
- Revenue recognition batch Edit action: The Edit action is now hidden for recognition batches that don’t have an edit page, preventing navigation to a missing page.
- Purchase order line validation messages: Purchase order line validation now shows clearer, friendlier error messages.
- Invoice PDF loading performance: Invoice PDF previews now load item data more efficiently, reducing delays for invoices with many line items.
- Contracts list dashboard stability: The contracts list dashboard no longer remounts and flashes when switching between views.
- Drawer backdrop and stacking: Fixed an issue where the Drawer component’s backdrop and stacking order could display incorrectly.
- Maintenance page label: Corrected a typo in the “Refresh” label on the maintenance page.
- Breadcrumb sibling menu sizing: The breadcrumb sibling menu no longer grows and then snaps to a smaller size when it opens.
- Report row dimension labels: Custom reports with two or more row dimensions now display row labels in a pinned column instead of inside the scrolling period columns, and the month header no longer collapses onto one row.
- Report data consistency: Custom reports now show dates, record names, and section labels consistently with the rest of the app, and no longer display a permissions message that didn’t apply.
- Report builder controls: The company scope control and record picker in the custom report builder are now properly labeled and sized.
- Report column drag and drop: The drag handle for reordering columns and grouping levels in the report builder now works correctly, and the list highlights where a dragged row will land.
- Report grid column widths: Column dividers and widths in report grids now render consistently instead of exceeding their configured size.
- Report result banners: Report result banners no longer show inaccurate row counts, and warnings now use consistent styling and currency labels.
- Grouped report columns: Grouped reports, such as AR aging by customer, now display their grouping column (for example, invoice number) correctly instead of leaving it blank.
- Report builder layout: The custom report builder no longer scrolls outside its panel or loses its configuration rail when scrolling.
- Report stats row alignment: The stats row in ownership reports now stays within the padded body of the page instead of overrunning its edge.
- Migration account mapping status: Accounts Mapping no longer stays stuck on “Connecting…” after your data source finishes syncing.
- Copilot sidebar links removed: Removed outdated Copilot links from the main sidebar to avoid confusion with the current AI copilot experience.
- Copilot response formatting: The AI copilot no longer strips out line spacing (new lines) from its responses.
- Reconciliation date picker: Reconciliation now uses a single, consistent date picker instead of multiple inconsistent date controls.
- Purchase order create view: The purchase order create view no longer shows the Quantity Billed column, simplifying the form.
- Top nav avatar sizing: The user avatar in the top navigation no longer gets cropped when the AI sidepanel is open.
- Report library loading and empty states: The report library now shows rows without clipping, and its loading and empty states now match the report table.
- Copilot permission checks on agent writes: The AI copilot’s record-editing actions now respect your own permissions instead of bypassing them.
- Copilot cash flow statement recognition: The AI copilot no longer incorrectly tells you that the cash flow statement doesn’t exist when answering cash flow questions.
- Report “Do not expand” setting: Fixed an issue where the “Do not expand” report setting failed to collapse basic rows, which could cause a group to show two disagreeing amounts.
- QuickBooks purchase import without a payment account: Fixed an issue where importing a QuickBooks purchase without a payment account could fail during migration.
- Bill.com sync retries: Bill.com sync now retries automatically when a paginated page temporarily fails with a server error, instead of aborting the sync.
- QuickBooks invoice import performance: QuickBooks invoice imports during migration are now processed in batches, improving performance and reliability for large imports.
- Copilot search resilience: The AI copilot now shows a “search temporarily unavailable” message instead of failing the entire chat turn when its search service has a temporary error.
- Bank match rule loading speed: Bank matching now reuses a shared, pre-warmed set of matching rules instead of reloading them from the database for each run, improving matching speed.
- Data export access control: You can now only create exports for data you’re permitted to view, and can only list and download your own export files.
- Bulk import Copilot correction mappings: The “Check and enrich with Copilot” bulk import flow now applies confirmed column renames, account mappings, and default columns to the corrected file instead of only fixing dates and numbers.
13 new features, 9 improvements, 40 fixes
New features
- Data Analytics: A new report builder lets you pick a primary record, add joins, group and pivot data, write formula columns, and filter results. You can start from a template gallery and export results or schedule delivery.
- Bill from a posted receipt: You can create a vendor bill directly from a posted item receipt, and control whether over-receipts are allowed.
- Custom PDF invoice templates: The template editor now supports a 12-column tile layout, left-aligned field values, adjustable font size, inline label editing, and resize handles on both sides of tiles. It also adds a “Use System” default date format.
- Draft change orders: Change orders can now be saved as drafts without passing full validation, with draft badges shown on the contract’s Change Orders tab.
- Copilot artifacts menu: The Copilot plus menu includes a searchable Artifacts submenu that opens results directly in chat.
- Copilot skill references: Typing a skill reference (/skill-name) in the Copilot composer now renders as a chip instead of plain text.
- Session renewal: Your session now renews automatically before the token expires, so you no longer see a forced re-login during long periods of activity.
- 1099 Vendor Payments report: The Detail report now links vendor names directly to their vendor records.
- Posted records immutability: Organizations can now configure a setting that controls whether posted records can be edited.
- Contract usage pricing: Contract usage-based pricing now reconciles tiered pricing with a dry-run preview before you commit changes.
- Onboarding classification mapping: Class, department, and project mapping are now combined into a single onboarding step.
- Bulk import modes: Bulk imports can now be set to create only, update only, or create and update, so a file meant to update existing records no longer requires every mandatory column.
- Bank transfers API sorting: You can now sort bank transfers by receiving amount through the API.
- Purchase order lifecycle: Purchase orders now support Closed and Cancelled statuses, with new list tabs, status badges, and Close, Cancel, and Reopen actions.
- Bank Match range selection: Bank Match and reconciliation lists now support Shift+click to select a range of rows.
- Scheduled Agents unread indicator: Scheduled Agents now show an unread signal when new activity is available.
- Classification dropdowns: Required classifications and attributes now appear at the top of dropdown lists.
- General Ledger report: The report now includes shipping address as separate columns for address lines, city, state, ZIP, and country.
- Recurring records filtering: The recurring records API now supports filtering by customer or vendor.
- Salesforce contract sync rules: Salesforce contract sync now supports configurable trigger rules that control when contracts are created, updated, or terminated.
- Salesforce field mapping: Salesforce migrations now support multi-tab field mapping for items, contracts, and performance obligations.
- Statement reconciler differences: The statement reconciler export now includes a Differences tab showing which periods are off, by account and month.
- Copilot Bank Match rules: Copilot now returns bank match rule data as structured output instead of a stringified payload.
- Copilot for view-only roles: Fixed an error that occurred when a view-only role tried to use Copilot.
- Copilot artifacts: Fixed the “Draft Intercompany Journal Entry” artifact failing to load, and fixed drilling into an artifact incorrectly returning you to the home screen.
- Copilot chat formatting: Pasted URLs now render correctly in chat messages, and line breaks you type are preserved instead of collapsing onto one line.
- Copilot HITL confirmations: Fixed human-in-the-loop confirmation actions not appearing.
- Benchmark jobs filters: Filters on the benchmark jobs list now correctly narrow results.
- Journal entries: Fixed the GL Impact tab showing the posting date under the “Transaction Date” label and improved the reversing journal entry action. Also fixed the Intercompany JE GL Impact tab showing stale data until refresh.
- Record prefixes: Record prefix is now a required field.
- For Approval tab: Added a code column to the For Approval tab.
- Contracts and amortization: Fixed contracts with performance obligations in an open period being blocked from edits by an earlier locked period. Also fixed the archive and recover action button not updating correctly on amortization schedule detail pages.
- Bank Match: Fixed the rules drawer failing to open and fixed Shift+click range selection not selecting the full range.
- Approvals: Fixed column values overlapping when resizing the first column in approval tabs.
- Flux analysis: Clicking a top mover, metric card, or waterfall bar now collapses the insights row before scrolling to the account, and Flux analysis now uses a single, consistent date picker.
- Reports performance: Fixed severe lag when scrolling large reports and fixed an unbounded render loop in the custom report builder.
- Reports accessibility: The column picker’s drag handle now has an accessible name and no longer stays focusable while search is active.
- Benchmark comparison export: Negative deltas in the CSV export now export as numbers instead of text.
- Dashboards: Fixed widget requests incorrectly including consolidated currency parameters when the feature was turned off.
- Budget groups: The Budget Group list now updates its status immediately after activating or deactivating a group, without needing a page refresh.
- Ownership and NCI: Fixed unconfigured ownership gaps being silently counted as an “outside holder” and a false “no ownership chain” message when a company is 100% owned by individuals. The New Owner drawer’s Company selector now excludes companies already assigned to another owner.
- Archive toasts: Archiving a record now shows the same confirmation message regardless of where you archived it from.
- Profile settings: Fixed the phone number field being misaligned in the edit profile drawer when a validation error is shown.
- Desktop app: Fixed an issue switching organizations in the desktop app.
- Custom PDF invoices: Fixed a stray drag-handle icon rendering in the header tile.
- Interface polish: Fixed the header avatar shrinking on small screens, textarea height calculation, chip styling, button pending-state animation and padding, and radio button label weight.
- Onboarding: Fixed the account mapping class selection not persisting, corrected the “Global” language for NetSuite migrations to reflect all companies, enforced authentication before reconciliation, and combined migration tabs. Also fixed a product tour bug, a missing currency menu on migrated sandboxes, and an error when exiting the quick setup flow.
- QuickBooks Online connections: Fixed handling of an aborted QBO connection during onboarding.
- Approval inbox: Fixed journal entries in Initiated status incorrectly appearing in the approval inbox.
- Contract creation: Fixed contracts being created with performance obligation items that have no deferral account.
- Allocation schedules: Fixed allocation schedules and templates allowing users without permission to create or run them, and blocked posting into companies outside a user’s access.
- Intercompany bill eliminations: Fixed intercompany bills continuing to eliminate under the wrong company after later updates.
- Close checklists: Fixed checklists and checklist templates being editable without permission checks, and enforced the separation-of-duties setting.
- Copilot account balances: Fixed Copilot occasionally using a neighboring company’s data when looking up account balances, and fixed valid companies being rejected in larger organizations.
- Copilot reasoning summaries: Fixed Copilot reasoning summaries not appearing in chat.
- Copilot multi-step responses: Fixed Copilot streaming duplicate or intermediate text into chat during multi-step responses.
- MCP write tool reliability: Write tools on the MCP server now guard against creating duplicate records when a request is retried.
- MCP entity search: Fixed searching for owner, ownership, and fixed asset records on the MCP server returning errors.
- QuickBooks Online migrations: Fixed migrations failing for companies with non-English characters in their name, and fixed migrations getting stuck when the chart of accounts numbering grid was full.
- QuickBooks Online tax handling: Fixed migrated bills with combined GST and QST tax components resolving to only one tax rate, and fixed migrated invoice tax appearing as a separate line item instead of on the invoice line.
- NetSuite migrations: Fixed billable expense invoice syncing failing when the source document was missing.
- Ramp receipt attachments: Fixed synced Ramp receipt attachments being saved with the wrong file extension, which prevented them from opening.
4 new features, 4 improvements, 15 fixes
New features
- Edit policy overrides by record type: Organizations can now set how posted records behave when edited on a per-record-type basis, with fallback to the org-wide rule when no override is set.
- Scheduled agent task expiration: Unreviewed scheduled agent tasks now expire automatically after a new run completes, keeping task lists current.
- Filter financial transactions by rule tier: Financial transaction listings can now be filtered to show only transactions with a complete rule tier assigned.
- Accounting roles can reconnect integrations: Users with accounting roles that have edit access to integrations can now reconnect connections such as Brex without needing elevated permissions.
- Bulk import support for allocation schedules: Bulk import now supports allocation schedules along with new header classifications.
- Field mapping context tree improvements: Field mappings support JMESPath lookups through an improved context tree, plus fixed value support for mapped fields.
- Item receipt overage allowance: Item receipts can now allow a bill quantity to exceed the received quantity, posting the difference to Accrued Purchases instead of blocking the bill.
- MCP now supports creating refund records: The MCP
save_recordtool can now create customer refunds and vendor refunds, not just advertise them as supported.
- Bank-match rules stay within your organization: Updating a bank-match rule no longer attaches a company from a different organization.
- Bulk archive and recover respects company access: Bulk transaction archive and recover actions now honor restricted-company access instead of ignoring it.
- Item dropdown includes non-stock goods: The item dropdown on item receipts and item fulfillments now includes non-stock goods, not just stock-tracked items.
- Canadian vendor bill tax now imports correctly: QBO imports for Canadian vendor bills now read HST from the tax line detail instead of importing the bill net-only, so vendor payments no longer appear as overpayments.
- Class mapping now migrates from QuickBooks: Class mappings now migrate correctly from QuickBooks to DualEntry instead of being dropped.
- Ramp vendor mapping sync no longer fails on new vendors: When a bill names a vendor created in Ramp alongside its first bill, the sync now refreshes the cached vendor list and retries instead of failing with a missing vendor mapping error.
- Balance Sheet Summary by company shows correct totals: The Balance Sheet Summary pivoted by company no longer inflates USD totals for foreign-currency subsidiaries; DualEntry no longer adds converted balances on top of the native functional balance.
- AI copilot no longer gets stuck on repeated tool calls: The AI copilot now detects when it repeats the same action and either tries a different approach or finalizes its answer instead of using up its full step budget.
- Unsupported record type message no longer points to a dead end: The error you see when requesting an unsupported record type no longer suggests a follow-up action that doesn’t exist.
- AI detector exclusions display correctly across companies: Anomaly detector exclusions now return their organization consistently, so exclusion lists display correctly.
- Adding an existing user to an organization no longer delays: Adding an existing user to an organization now completes immediately instead of waiting on unrelated background processing.
- Bulk import matches existing records more reliably: Bulk import upsert lookups now match records by name regardless of case, and rows with an unmapped ID column fail with a clear error naming the cell to fix instead of silently creating duplicates.
- Dashboard widgets load faster: Executive summary dashboard widgets, including aging reports, now load faster and return more accurate results for vendor filtering and multi-company organizations.
- Sending report data to Slack now includes the actual rows: Sending a retrieved list, such as a transactions list, through the AI copilot now delivers the full data instead of just a label.
- Checklist access now enforces permissions and separation of duties: Checklist actions now require the correct permission, and preparing and completing a checklist item remain separate responsibilities, so the same access grant can’t perform both.
7 new features, 7 improvements, 26 fixes
New features
- Bank match AI transaction labels: AI-drafted bank match transactions are now visually labeled so you can quickly distinguish them from manually matched transactions.
- Bank match rule draft preview: When the AI copilot drafts a new bank match rule, it now renders as a readable workflow preview instead of raw data in the chat response.
- New Owner modal field order: The New Owner modal now lists Company above Name, and the Name field defaults to the company name.
- Company prefix section: A new company prefix section is available in company settings.
- Helios bank connections: A new bank connection provider, Helios, is now available for connecting bank accounts.
- Statement reconciliation reauthorization: When your QuickBooks Online or Xero connection loses API access, the statement reconciliation drawer now offers a reconnect flow instead of blocking you. You can still upload an export as before.
- Combined classifications mapping step: NetSuite migrations now map classes, departments, and projects together in a single classifications step instead of three separate tabs.
- Record codes on approval lists: Invoice, bill, and journal entry approval lists now show a record code column, placed after the number column to match the overview screens.
- Record code on listing pages: Listing pages now display the record code for each record.
- Cash flow report column selector: The cash flow report now uses the same pivot and column-selector icon as the income statement and balance sheet, replacing the previous “Month” dropdown button.
- Avalara push data helper text: The “Allow push data” toggle in Avalara Settings now includes helper text explaining what it does.
- Multi-select vendor payment filter: The vendor payment form filter now supports selecting multiple values at once.
- NetSuite migration company selector: NetSuite migrations now use “All Companies” instead of “Global” to match DualEntry terminology.
- Clearer constraint error messages: Error messages for duplicate or conflicting records now describe the issue in plain language instead of showing raw database errors.
- MCP OAuth security hardening: Closed a vulnerability where open dynamic client registration could allow interception of authorization codes and theft of access tokens.
- User profile updates: Profile details now update immediately after you edit them, instead of requiring a refresh.
- Plaid exit modal overlay: Fixed an issue where exiting the Plaid bank connection flow left a blank overlay on screen.
- Project customer field: Fixed an issue where the customer field was cleared when editing an existing project.
- Payment information validation: Fixed a bug that let you bypass required payment information validation by clearing a field after entering it.
- Item edit from list view: Fixed an issue where editing an item from the list view failed after saving.
- Company payment method layout: Corrected incorrect padding in the company payment method section.
- Selection error on load: Fixed an error that occurred when a selection state was read before it was available.
- Intercompany journal entry GL Impact refresh: The GL Impact tab now updates immediately after you save, archive, or recover an intercompany journal entry, without requiring a page refresh.
- GL Impact header dates: Corrected the transaction and posting dates shown in the GL Impact header so they reflect the source record and your independent transaction dates setting.
- Long input field layout: Fixed an issue where entering a very long value stretched the entire page layout.
- Effective ownership chain display: Companies held by people or outside entities, rather than another company in your organization, now correctly show their direct owners instead of appearing to have no ownership data.
- Non-controlling interest disclosure: The Effective Ownership & NCI card now clearly separates the unassigned ownership percentage from the count of outside holders, instead of combining them into one misleading figure.
- Blocked mailto links: Fixed a content security policy violation that blocked
mailtolinks from opening. - Change order contract calculations: Fixed an issue where change order invoice amounts and customer credits could be calculated incorrectly.
- Amortization and fixed asset draft posting: Fixed an issue where draft amortization schedules and fixed assets could post entries to the financial statements before receiving required approvals.
- Reconciliation summary sign convention: Fixed an issue on credit-normal accounts (credit card, accounts payable, and other liability accounts) where the reconciliation summary’s Recon Difference and Variance GL to Bank could never both show zero.
- Bulk transaction archive and recover access: Fixed an issue where restricted users could archive or recover transactions in companies outside their access.
- Location data access scoping: Fixed an issue where location and product category data could be visible across companies that shouldn’t share access.
- Bank match rule access scoping: Fixed an issue where bank match rules could be deleted or dismissed by users outside the rule’s organization.
- Payroll clearing reconciliation for withheld amounts: Fixed an issue where payroll amounts withheld by the provider without an itemized line, such as insurance premiums, silently posted to the clearing account without explanation.
- Voided journal entries from Xero: Fixed an issue where manual journal entries voided in Xero stayed posted in DualEntry after resyncing; they are now archived.
- Vendor resolution for NetSuite employee bill payments: Fixed an issue where NetSuite bill payments to employees failed to import because the payee wasn’t resolved as a vendor.
- Billable expense items: Fixed an issue where billable expense invoice lines imported from NetSuite without an item.
- Effective ownership for deleted owners: Fixed an issue where a soft-deleted owner with existing ownership records could drop out of the effective ownership chain.
- Scheduled agent unread badge: Fixed an issue where the AI copilot’s scheduled agent list showed an unread badge to users who didn’t own the schedule and couldn’t clear it.
8 new features, 9 improvements, 27 fixes
New features
- Reversal journal entry links: A reversal journal entry now links back to the original entry it reverses, so you can trace the relationship directly from the record.
- Required record prefixes: Record numbering settings now block saving when you leave a prefix empty and show a validation error instead.
- Company prefix section for record numbering: When per-company numbering is enabled, you can search, get suggestions, and bulk-save short codes for company prefixes.
- New Owner drawer reorder: The New Owner drawer now asks for the Company first and automatically suggests a name based on it, saving you from typing the name twice.
- Transaction monitor vendor exclusion: You can now exclude specific vendors from a transaction monitor to reduce noise from frequent, similar payments, such as ad platform charges.
- Owner restore: You can now restore a soft-deleted owner and its ownership records instead of recreating them.
- Invoice exchange rate auto-calculation: The public API now automatically calculates the
exchange_ratefor an invoice when you omit it from the request. - Account mapping class in migrations: You can now assign a class when mapping accounts during a migration.
- Item categories: The item form and item list now show a Category field, and you can filter the item list by category.
- Searchable artifacts menu: The copilot’s artifacts menu is now searchable, making it faster to find a specific artifact in a long list.
- Multi-select transaction type filter: The Transaction Type filter on vendor payment Open Transactions now supports selecting multiple types at once instead of only one.
- Cash Flow column picker: The Cash Flow report now uses the same pivot-icon column picker as the Income Statement and Balance Sheet for a consistent experience.
- Push data toggle tooltip: The allow push data toggle now has a helper tooltip explaining what enabling it does.
- General Ledger report audit columns: The General Ledger report now includes Created By, Last Approved By, and Last Approved Date columns.
- General Ledger report shipping address columns: The General Ledger report now includes shipping address columns for address line 1 and 2, city, state, ZIP, and country.
- Summary Reports line customer/vendor column: Summary Reports now support adding a Line Customer/Vendor column.
- SFTP upload history: Bank connections configured via SFTP now show a history tab tracking file pickups and uploads.
- Copilot artifact loading: Fixed an issue where the “Draft Intercompany Journal Entry” artifact failed to load with a “We had a problem loading this artifact” error.
- Copilot chat prompt styling: Unified the visual elevation of the chat prompt across the copilot interface.
- Copilot view-only send errors: The copilot now explains why sending a message fails when you only have view-only access.
- Copilot markdown links: Fixed the styling of markdown links rendered in copilot responses.
- Scheduled agent drawer overlay: Fixed an issue where opening a scheduled agent drawer could affect the overlay state of other open drawers.
- Scheduled agent interval floor: The scheduling interval picker now requires at least one hour between runs, matching what the system supports, and automatically adjusts any shorter saved schedules.
- Approval list column overlap: Fixed an issue where the Type column could overlap the Number column when you resized the first column narrow on the Approval and For Approval tabs.
- Account mapping class selection: Fixed an issue where the selected DualEntry class was lost during account mapping.
- Company payments tab layout: Aligned the padding on the company Payments tab with other tabs and removed an initial loading jump.
- Company allocation with sparse lines: Fixed an error that could occur when a cross-company allocation form contained empty line entries.
- Project customer field on edit: Fixed an issue where editing a form with no associated company could incorrectly clear the linked customer.
- Payment information validation: Fixed an issue where clearing a required rich-text field left it appearing valid, allowing it to pass validation incorrectly.
- Profile edits after save: Profile changes now appear immediately after saving instead of lagging behind.
- Kebab menu edit navigation: Fixed broken edit links from the kebab menu after a save redirected to a different list path.
- Command input width: Long command inputs on the management page no longer stretch the page layout.
- Meld host modal on bank connection close: Fixed an issue where closing the bank connection provider left an empty modal open.
- Content security policy for email links: Fixed a content security policy violation that blocked
mailtolinks. - Field mapping save: Saving a field mapping configuration now correctly saves the entire configuration instead of a partial update.
- Copilot journal entry creation: Fixed an issue where the copilot could not create invoices or journal entries, and improved reclassification suggestions to weight expense debits correctly.
- Cash Flow report export error: Fixed an error that could prevent the Cash Flow report from exporting for certain date ranges.
- Effective Ownership export zero split: Fixed an issue where the Effective Ownership export could show a false zero split for a company with no controlling chain.
- Effective Ownership soft-deleted owners: Fixed an issue where a soft-deleted owner with live ownership records could cause Setup validation, Allocation, and Effective Ownership to disagree with each other.
- Manual FX rounding mismatch: Fixed a rounding mismatch between dashboard widgets and reports when using manual FX rates.
- Financial account organization scope: Fixed an issue where updating a financial account in the chart of accounts could bypass organization scoping.
- Invoice validation error item name: Validation errors on sales order items now show the item name instead of the item ID.
- Vendor search in For Approval tab: Fixed an issue where searching for a vendor did not return existing records on the For Approval tab.
- QuickBooks Online migration: Fixed an issue affecting QuickBooks Online migrations.
13 new features, 12 improvements, 32 fixes
New features
- Migration account mapping classes: You can now assign a DualEntry classification to each source account during migration account mapping, letting multiple source accounts consolidate into one DualEntry account while staying distinguishable. The class is stored on the mapping and applied on import from QBO, Xero, or Rutter.
- Currency revaluation search: Search in the Currency Revaluations process now filters and returns matching records correctly across the process and transaction tabs.
- NetSuite record links: NetSuite migration records now link to their source records in NetSuite, so you can jump directly to the originating record.
- NetSuite account mapping scope: NetSuite account mapping during migration now restricts matches to accounts within the same company, preventing cross-company mismatches.
- Cash Flow column view picker: The Cash Flow report’s column view now offers Year, Quarter, and Month options through a dropdown, matching the layout of the Income Statement and Balance Sheet reports.
- Bulk import for Ownership: You can now bulk import owners and ownership records from the Owners and Ownership Setup pages instead of entering them one at a time.
- Pause migration sync: You can now pause an in-progress migration sync.
- Tasks: Tasks is one board for your accounting work, whether a teammate or an agent is doing it. Bank matches, anomalies, approvals, and agent runs show up alongside your own to-dos, and you make the final call on anything that needs sign-off.
- Allocation types in production: Allocation setup now offers transaction-based and statistical allocation types.
- Jurisdiction-aware invoice formatting: Invoices now adjust their date format and reverse charge wording based on the jurisdiction of the company and customer, in addition to the tax ID label.
- Record numbering by transaction type: You can now configure record numbering separately for each transaction type.
- On-demand export refresh via API: The public API now includes export-jobs endpoints so you can request a data export refresh, poll a job’s status, and list export jobs.
- Ship-to address columns in General Ledger report: The General Ledger report now offers six selectable ship-to address columns: line 1, line 2, city, state, ZIP, and country.
- QBO journal entry tax import: Journal entries imported from QBO now include their tax lines, so entries with below-the-line GST, HST, PST, or QST post in balance instead of failing on a currency mismatch.
- Customer tax status on update: The public API now accepts
is_taxableon customerPUTandPATCHrequests, not justPOST, so you can update a customer’s tax status after creation. - Scheduled Snowflake exports: Snowflake destination exports now run automatically once a day instead of requiring a manual trigger, with the option to set a faster per-organization schedule.
- Vendor column in Intercompany GL Impact: The Intercompany GL Impact report now shows a Vendor column when a line has a linked vendor, and the vendor is included in the CSV export.
- Tax ID labels on invoices: Invoices now display the correct tax ID label, such as ABN, GST number, or VAT ID, based on the jurisdiction of the company and the customer.
- Clearer company selection during migration: Migration screens now show more clearly which company is selected, and creating an account during migration prefills the company field.
- Recent Journals table columns: The Recent Journals table now includes GL Accounts and Companies columns.
- Insights renamed from Benchmark: The Benchmark feature has been renamed to Insights.
- Invoice template blocks: Invoice templates now support additional footer and line item blocks and fields.
- Employee status filter on migration mapping: The Individual Companies and Individual Locations mapping tabs now include a filter for employee status.
- Ownership export from expanded panel: The expanded owner panel on the Ownership report now includes an export control.
- Filter records by update time: List and line collection endpoints in the public API now accept an
updated_afterparameter, so you can return only records changed since a specified time.
- Audit Trail search: The search filter in Audit Trail tabs now filters results correctly.
- Faster Add Existing User: Opening Add Existing User no longer waits on membership status for every organization when browsing the full list, so the dialog loads faster.
- System accounts as parents: You can now set a system account as a parent account without errors.
- Income statement widget rounding: Dashboard widgets using manual FX rates now round revenue, cost of sales, and gross profit totals the same way as the Income Statement Summary report, removing small discrepancies between the two views.
- Swagger availability: API documentation (Swagger) is available again across all environments.
- Copilot duplicate sessions: Asking Copilot a question no longer creates two sessions that return different answers.
- Copilot composer Tools panel: The Copilot composer no longer shows a duplicate Tools panel.
- Copilot connector icons: Connector icons in the Copilot connectors menu are now properly sized and centered.
- Scheduled Agents callout: The callout on a schedule-driven Copilot conversation now opens an Edit Schedule drawer instead of pausing the schedule.
- Empty-state create button: Clicking the create button on an empty-state screen no longer triggers a full page refresh before opening the form.
- Statistical Journal account popover: Tags in the Statistical Journal account popover no longer wrap onto multiple lines.
- Bank Connections provider account: Bank Connections now pulls the provider account matching the entity and currency you selected, instead of the account from an active browser session.
- Migrations page sync status: The multi-entity migrations page now shows integration logos and sync status correctly.
- Migrations page tab selection: Clicking a tab on the migrations page now immediately shows that tab’s content.
- CSV formula injection: CSV exports no longer contain values that spreadsheet applications could execute as formulas.
- Total row pinning: Total rows in data tables now stay pinned to the bottom of the table instead of overlapping the header row.
- Benchmark comparison CSV values: Negative values in the benchmark comparison CSV export now import as numbers instead of text.
- Required classifications on save: Item forms now show an asterisk for required classifications and prevent saving until the requirements finish loading.
- Bank rule transaction types: Intercompany Journal Entry is no longer offered as a transaction type when creating a bank rule, since rules of that type could never run.
- Open Transactions filter: The transaction type filter on the Open Transactions screen now uses radio buttons to reflect that only one type can be selected.
- Customer filter selection: Selecting a customer in the customer filter tree no longer resets the list or scroll position.
- Reconciliation search focus: Searching within the reconciliation matrix no longer loses focus or shifts the page layout when switching periods.
- Ownership CSV caption: The Ownership CSV export now includes the equity share caption that already appears on the Ownership tab.
- Vendor payment transaction type filter: The transaction type filter on the vendor payment form now correctly limits selection to one type.
- Custom org setup UI: The custom organization setup screen no longer shows inconsistent layout for Volume, and the Business Model field now accepts spaces.
- Bank Connections tab navigation: Institutions, Institution Overrides, and Institution Syncs tabs in organization Bank Connections management now navigate to the correct tab.
- Ownership Allocation total row styling: The Ownership Allocation report’s Total row now shows the correct fill and merged-cell hairline instead of a visual gap.
- Scheduled month-end agent jobs: Scheduled agent jobs tied to month-end no longer silently skip a month when a tick lands after local midnight.
- QBO payroll journal entry imports: Invoices synthesized from imported journal entries now only use AR debit lines, so payroll entries no longer incorrectly show accrued liabilities as invoice lines.
- Report customer and vendor totals: Reports now include invoices in customer totals and prevent double-counting on customer and vendor fan-out calculations.
- Search results for vendors and customers: Search on the Approvals page now correctly returns vendor and customer results.
- Record recovery with custom fields: Recovering a deleted record no longer fails validation because of a custom field, so records with newer custom fields can be recovered again.
9 new features, 3 improvements, 19 fixes
New features
- AI copilot EBITDA metric: The AI copilot now calculates EBITDA using a consistent, deterministic formula based on net income plus depreciation, amortization, interest, and tax, so scorecard results no longer vary between runs.
- Scheduled AI agents: You can now connect and run scheduled AI agents on an hourly cadence, up from previously unrestricted intervals.
- Item standard price in the public API: The items endpoint now returns standard price fields, giving integrations visibility into standard selling price alongside existing item data.
- Invoice code sequences: Invoices and contract invoices now receive a unique, formatted code automatically when posted, based on your organization’s numbering settings.
- Bulk update company short codes: You can now bulk update short codes for companies and filter the companies list by short code.
- Cleaner default account names: Default expense and income accounts created during setup no longer include a “[Rutter]” prefix, so labels read as plain “Default Expense” and “Default Income”.
- Scoped NetSuite account mapping: NetSuite account mapping now only offers DualEntry accounts that match the source company’s scope, preventing mismatched company-to-global mappings.
- NetSuite source links: Data sync records imported from NetSuite via Rutter now link directly to the original NetSuite record and display its document number instead of an internal ID.
- Filter integration mappings by active status: You can now filter integration mappings by whether the source record is active, so status filters like Employee Status return the expected results.
- Partial updates for AR records: The API now supports PATCH for items, contracts, customer prepayments, customer prepayment applications, and customer credits, so you can update individual fields without resending the full record.
- Clearer NetSuite subsidiary labels: NetSuite accounts that apply to every subsidiary now display as “Global” instead of listing every subsidiary name. Creating an account from the mapping screen also carries over the company, name, and type from the source row.
- Scheduled agent unread indicator: Scheduled AI agents now show an unread indicator when a run finishes, so you can tell at a glance which schedules have new results.
- AI copilot drafting: The AI copilot now fully populates journal entry drafts, including debits, credits, accounts, and classifications, instead of opening a blank entry.
- AI copilot classification detection: The AI copilot now correctly matches classification values such as department and location instead of confusing them with classification names.
- AI copilot invoice and receipt uploads: Uploading an invoice or receipt to the AI copilot now fills in vendor, amount, and payment account details instead of posting a mostly empty form.
- AI copilot data exports: Downloading tabular data generated by the AI copilot no longer fails, including for tables with special characters in their titles.
- Bank match AI: Transactions you exclude from bank match AI suggestions no longer reappear later.
- Account edits under immutability: Bulk account status and edit actions now update every eligible account and report which accounts couldn’t be changed, instead of failing the entire request.
- Bank connections: Institution search and connection screens now indicate when a bank connection uses OAuth, so you’re warned before linking the wrong account during the provider handoff.
- Sandbox user access: Users copied into a new sandbox no longer see blank data until removed and re-added; access now resets correctly during sandbox creation.
- Finch payroll filters: Data sync filters for Finch-connected payroll integrations now show all relevant transaction types, including payments, pay statements, and consolidated payroll.
- New user default role: New organization members provisioned through direct add, SCIM, or bulk import now start with view-only access instead of admin.
- Webhook security hardening: Brex, Rippling, Meld, Waycore, and WorkOS webhooks are now hardened against replay and credential exposure.
- Stripe credit notes: Credit notes settled to a customer’s Stripe balance or made after payment now post correctly or surface a clear integration error, instead of being silently skipped.
- QuickBooks Desktop migration: Transactions missing a currency during QuickBooks Desktop migration now fall back to your company’s currency instead of failing to import.
- Bulk import number formatting: Bulk import now correctly reads European-style decimal formatting (for example, “1.234,56”) instead of misinterpreting it as a larger number.
- Sign-in security: Cookie-authenticated requests are now restricted to trusted origins, closing a gap that could allow cross-site request forgery.
- Overdue aging report accuracy: The overdue aging report and its summary view now show consistent totals instead of diverging numbers for the same period.
- PDF report title security: Titles in exported PDF reports are now escaped, preventing malicious HTML from being used to access internal files during rendering.
- API documentation security: Internal API documentation is no longer publicly accessible using a default password.
- Pending invite permissions: Assigning a role to a pending invitation now checks that the inviter has permission to grant that role, closing a gap that let non-admins invite admins.
3 new features, 12 improvements, 14 fixes
New features
- Recurring records archive: Recurring records now archive instead of delete, preserving their history.
- MCP Connectors bring-your-own credentials: MCP Connectors now offer a credential form for bring-your-own presets that doesn’t require admin credentials.
- Scheduled agent configure drawer: The schedule editing modal has been replaced with a configure drawer that supports update mode and pausing a schedule.
- Stability and performance: Minor stability and performance improvements.
- Resizable flat-table columns: Flat-table artifacts now support drag-resizing columns.
- Copilot visualization cards: Copilot visualization cards now show an icon, title, and timestamp.
- Condensed scheduled agent messages: Scheduled agent chat bubbles now show only the task and run timestamp for a cleaner view.
- Payment Methods filters: The Payment Methods list now supports filtering.
- SFTP bank connections: SFTP bank connections now support a streamlined setup flow with bank name, URL, and credential entry.
- Deel cutoff dates: Deel settings now support shorter cutoff dates.
- Effective Ownership and NCI live data: The Effective Ownership and NCI report now uses live data.
- Ownership Allocation live data: The Ownership Allocation report now uses live data.
- Owner Portfolio live data: The Owner Portfolio report now uses live data.
- Consolidated exchange rate search: Consolidated exchange rates now support filtering and search by company.
- Bank connection handoff warning: Bank connections now show a warning before handing off to your bank’s login page when connecting or reconnecting an account.
- Slack approval hang: The app no longer hangs after approving a message sent through Slack.
- Bills saved views: Custom saved views on the Bills list no longer disappear when switching tabs.
- Vendor Payment Open Transactions: Vendor Payment Open Transactions no longer retain a previous company’s transactions after switching companies.
- Record creation error messaging: The notification shown when a record creation failure is ambiguous is now clearer.
- Sandbox form validation: Native browser validation no longer fires alongside the inline error on the new sandbox form.
- Profile button email alignment: Email text in the profile button now aligns correctly.
- System error rendering: System errors now render in place instead of redirecting to a broken access-denied page, so you can retry without losing your place.
- Logo attachment content types: Logo attachment uploads are no longer served with unsafe content types.
- Mobile app authentication callbacks: Mobile app authentication callbacks are no longer incorrectly redirected during version updates.
- Period-lock reason display: The period-lock reason now displays correctly, so Save buttons no longer disable silently.
- Direct expenses bulk recover: The bulk recover action on the direct expenses list no longer fails when items are missing.
- Consolidated exchange rate tooltip: An empty tooltip no longer appears when hovering over month labels on consolidated exchange rates.
- SDK integration version updates: A redirect loop no longer occurs during version updates for integrations using the SDK.
- Copilot chat initialization: The copilot chat no longer initializes twice, so duplicate conversations no longer appear.
5 new features, 8 improvements, 27 fixes
New features
- Close strictness settings: Admins can now configure organization-level close strictness from a dedicated settings screen.
- Scheduled agent run view: The “Run” button on Scheduled Agents is now labeled “View Run” for clarity.
- Bank match rule connections: You can now connect bank match rules directly within close workflows.
- Copilot statistical journal support: The AI copilot can now read and answer questions about statistical journals and statistical accounts.
- Owner Portfolio live data: The Owner Portfolio report now pulls live holdings from the report endpoint instead of showing seeded demo data.
- Contracts dashboard: The Contracts list now loads live dashboard data and supports adding, editing, and removing widgets.
- Contract ramp groups: Change-order and summary frames in contract ramp groups have a refreshed layout, and view mode now displays more clearly.
- Amortization form approvals: Amortization forms now show Approve and Reject actions directly, and the list refreshes automatically after you approve an item.
- International phone numbers: Customer and vendor phone number fields now accept extensions and international formats.
- Statistical account filters: The Statistical Account balance table now includes additional filters to narrow down results.
- Deel credit account mapping: Deel integrations can now use credit account overrides when mapping transactions.
- Ownership panel export: The Owners panel in Ownership reporting now includes an export and download button.
- Scheduled Agents configure drawer: Editing or creating a scheduled agent now opens a configure drawer with a pause and resume control, replacing the previous edit modal.
- Contracts metrics button: The Metrics button now appears correctly on the Contracts For Approval tab.
- Close progress messages: Progress messages no longer flicker when the live connection reconnects during a close.
- Check pagination: Pagination controls in Check no longer jump upward when a list contains fewer records.
- Recurring transaction validation: Validation errors on the Start Date and End Date fields in recurring transaction forms no longer break the form layout.
- Financial institutions status filter: The status filter checkbox in the Financial Institutions listing no longer displays incorrectly.
- New classification form: The new classification form now renders correctly instead of displaying with broken layout.
- Nexus tax agency label: The Tax Agency dropdown label on the Nexus form now matches the styling of other company fields.
- Column picker accessibility: The column picker’s drag handle now has an accessible name and is disabled while searching, preventing accidental drags.
- Ownership nested tables: Ownership nested tables now render full-width, and the clipped Actions header and Total row height have been corrected.
- Ownership column dividers: Sticky column dividers in Ownership reporting now render as 1px hairlines to match the design.
- Ownership allocation total row: The Allocation Total row in Ownership reporting now has the correct fill and merged-cell hairline.
- Ownership list styling: Primary identifiers in Ownership lists are now easier to read, and company avatars have a more subtle appearance.
- Report package apply button: The Apply button now displays correctly for admin users creating a report package.
- Asset class list order: Fixed-asset class lists now display in the correct order instead of relying on inconsistent client-side sorting.
- Static asset styling: Fixed an issue where page styling could fail to render because CSS assets were blocked from loading.
- Stripe dispute reconciliation: Stripe disputes now appear in Integration Errors for manual GL reconciliation instead of going unrecorded.
- Stripe refund visibility: Refunds that fail to post automatically now appear in Integration Errors instead of leaving cash unreconciled.
- Stripe payment method requests: Requesting a payment method from an existing Stripe-synced customer no longer creates a duplicate Stripe customer.
- Statistical journal search: Searching statistical journals now correctly matches on ID prefix and memo text.
- AI prospect tour: The AI prospect tour no longer displays the unavailable Budgets and Forecasting option.
- Bulk reclassify sync protection: Bulk reclassification now flags synced records as dirty, preventing subsequent syncs from overwriting manual updates.
- QuickBooks invoice import: Invoice import no longer fails when optional invoice line tables are missing from the source data.
- PayPal MCP connector: The PayPal MCP connector now installs successfully instead of failing with a transport error.
- Customer children pagination: Loading a customer’s child accounts no longer truncates the list, so parent exclusion and payment or prepayment flows resolve against the full set of children.
- Organization logo upload errors: Organization logo uploads now show clearer failure messages when a logo can’t be fetched.
- Period lock reason tooltip: Save buttons on forms in a locked period now show the lock reason on hover instead of being hidden behind the keyboard shortcut tooltip.
- Mobile sign-in redirect: Signing in from the mobile app no longer gets stuck in a redirect loop.
10 new features, 11 improvements, 75 fixes
New features
- Multi-period purchase orders: You can now create and edit purchase orders that span multiple periods directly in the UI.
- Edit scheduled agents from chat: You can now edit a scheduled agent directly from the chat title dropdown.
- New items mapping step for QuickBooks Online migrations: Migrations from QuickBooks Online now include an optional step to map items during setup.
- NextDay migration item mapping: You can now map items during a NextDay migration.
- New prospect seeding flow: A new onboarding flow lets you seed a prospect organization with sample data before go-live.
- Duplicate classification names blocked: Creating or editing a classification now requires a unique name, checked case-insensitively, so you can no longer create accidental duplicates.
- Owner Portfolio report: A new Owner Portfolio report shows an owner’s direct holdings and average ownership percentage as of a selected date, with PDF and Excel export support.
- Resizable copilot table columns: Columns in copilot flat-table artifacts can now be resized by dragging.
- SFTP bank connections: You can now connect a bank via SFTP, providing the bank name, URL, and credentials directly in the connect flow.
- Ownership bulk import: You can now bulk import owners and ownerships using a CSV template.
- Amortization approvals from the list view: Amortization forms now show Approve and Reject actions directly, and the list refreshes automatically after you act on an item.
- Statistical account balance filters: The statistical account balance table now supports filtering by account, classification, and classification line, with the selected period shown as a chip.
- Owner panel CSV export: You can export an owner’s ownership records to CSV directly from the expanded owner panel in the Ownership module.
- Bring-your-own credentials for MCP connectors: You can now supply your own credentials when connecting an MCP server, and a warning now appears in the Authenticate status for BYO servers that need attention.
- Approval strictness setting: Organization settings now include an approval strictness setting to control how strictly approval rules are enforced.
- Audit trail search by user: Search on the audit trail page now matches by user, making it easier to find actions taken by a specific person.
- Phone number extensions: Customer and vendor phone fields now accept an extension after the number (for example, x123 or ext. 123) in addition to standard number formats.
- Deel credit account overrides: Deel journal entries now support mapped credit account overrides, so statement lines can route to specific accounts instead of the default.
- Copilot artifact cards show icon, title, and time: Chat artifacts now display as a compact card with a type icon, title, and the time the message was created, instead of a plain “View visualization” link.
- Condensed scheduled agent messages: Scheduled agent chat messages now show the task and run time in a compact bubble instead of the full scheduled-tick context.
- Deel cutoff date flexibility: Deel settings now support shorter cutoff dates, and related settings have been simplified.
- Reconciliation deletion: You can now delete reconciliations directly in the UI without contacting support.
- Reconciliation account hierarchy: The reconciliation view now reflects account hierarchy instead of showing accounts as a flat list.
- Reconciliation column resizing: Columns in the reconciliation view can now be resized narrower than before.
- Date filters allow future dates: Date filters no longer block future-dated records, so you can filter and find them as expected.
- Revenue items can now be set to Milestone: Creating a new revenue item no longer prevents you from selecting Milestone recognition.
- Recognition batch search: Searching within recognition batches now returns correct results.
- Product tax code dropdown: The Code dropdown on product tax codes no longer gets stuck on “No Results,” and you can now type a custom code.
- Consolidated exchange rates support more precision: Consolidated exchange rate fields now accept up to 9 decimal places.
- Customers and vendors restricted by company: Customer and vendor lists now correctly respect company-level restrictions.
- Empty-state create actions restored: The “For Approval” tab across several modules now shows the create action when the list is empty.
- Classification “Required On” layout: The Classification drawer now splits “Required On” into two columns with clearer grouping.
- Zero quantity allowed on invoice lines: You can now save an invoice line item with a quantity of 0.
- Vendor search by Vendor ID: Searching vendors by Vendor ID now returns the expected results.
- Payment Methods and Terms tab navigation: The active tab now highlights correctly when navigating Payment Methods and Terms.
- Bill creation from purchase orders: Creating a bill from a purchase order no longer incorrectly blocks on a “quantity must be greater than zero” error when the quantity is valid.
- Payment Methods filters: Filters on the Payment Methods list now work correctly.
- Company field clears properly: Clearing the Company field on recurring journal entries, invoices, cash sales, bills, direct expenses, and currency revaluations now removes the displayed value.
- Multiple customer credits from one cash sale: Creating multiple customer credits from a single draft cash sale no longer causes errors.
- Migration completion accuracy: Migrations no longer report 100% completion when no data was actually pulled into the organization.
- NetSuite subsidiary tree mapping: Partial NetSuite subsidiary tree maps are now blocked to prevent incomplete migrations.
- Ownership Allocation report totals: The Allocation report’s Total row now displays a solid background and the correct column divider, so it reads clearly as a summary row.
- Ownership sticky column dividers: Sticky column dividers in Ownership tables are now a consistent 1px, matching other column borders.
- Ownership avatar and text styling: Company avatars in Ownership lists use a neutral color, and owner and company names now display with clearer emphasis.
- Pivot layout toggle: Toggling pivot layout in reports no longer silently moves row classifications to the column axis.
- Custom Field Lines filter: This filter is now disabled with helper text until a Custom Field is selected, preventing invalid filter states.
- Custom Reporting pivot fields: Adding pivot fields to Custom Reporting no longer displays “$NaN” values.
- Report package company scope popover: The Cancel and Apply buttons in the company scope popover are no longer hidden, so report packages can be saved.
- Report column picker accessibility: The column picker’s drag handle now has an accessible name for screen readers and disables itself while a search filter is active.
- Nexus tax agency field styling: The tax agency field on nexus settings now matches the label style used by other company and account fields.
- Classification form width in drawer: Classification forms and their values table now stay within the drawer’s intended width instead of overflowing.
- Paper check footer layout: Fixed a layout issue in the paper check footer.
- Recurring transaction date range validation: Error messages on recurring transaction date ranges no longer shift other fields out of alignment.
- Contract change order summary frames: Fixed display issues in the change order summary frames for Ramp contract groups.
- Phone field validation: Corrected validation on the phone number field.
- Asset class list ordering: Asset class lists now display in the order returned by the system instead of an incorrect client-side sort that broke pagination.
- Organization checkbox filter: Fixed a checkbox filter that was not applying correctly in organization management.
- MCP connector logos: Connector logos in the MCP tools browser are now properly sized within their frames instead of appearing oversized.
- Copilot composer send button: The send button in the copilot composer now matches the styling of other toolbar icon buttons.
- Missing metrics button on For Approval tab: The metrics button now appears correctly on the “For Approval” tab.
- Stylesheets loading from the asset CDN: Fixed an issue where some page styles failed to load when served from the asset CDN, which could cause pages to appear unstyled.
- Ownership reports now show live data: The Allocation and Effective Ownership reports now pull figures from your organization’s actual data instead of sample data, and the PDF and Excel export buttons now generate real exports.
- Ramp vendor matching: Ramp transactions now resolve to the correct vendor when a same-named vendor is already mapped, even if the card merchant name differs slightly.
- GitHub MCP connector authentication: The GitHub MCP connector now authenticates correctly using its own OAuth client credentials instead of failing during setup.
- Product tax code deletion message: Deleting a product tax code that is still linked to records no longer shows a success message, since the linked codes are not actually deleted.
- Currency revaluation search by ID: Searching by currency revaluation ID in the Currency Revaluations Process and Transaction tabs now returns matching results.
- Project search bar: The search bar in the Project Overview and Archive tabs now filters results correctly.
- Invoice memo no longer required via API: The invoice memo field is no longer required when creating or updating an invoice through the API, matching the UI behavior.
- Contract status no longer reverts: Completed contracts synced from an integration no longer revert to Active status, so the activity log no longer shows duplicate status changes.
- Brex sync tolerates malformed records: Brex accounting record sync no longer drops an entire page of records when one record is malformed; the remaining records still import.
- QuickBooks refund receipts to Undeposited Funds: QuickBooks refund receipts that deposit to Undeposited Funds are now skipped instead of repeatedly failing to sync.
- Migrations recover from temporary database contention: Migrations experiencing temporary database contention now retry automatically instead of failing the entire migration run.
- Bank match archiving: You can now archive a transaction that still has a draft bank match instead of being blocked.
- Faster payee matching during bank sync: Payee matching during bank sync is now faster, without changing which payees are suggested.
- Stripe refund recording: Refunds on Stripe charges are now recorded correctly even when the related payment intent can’t be retrieved.
- Stripe customer sync name conflicts: Stripe customer sync now recovers automatically when a customer’s display name was already used by another mapped customer.
- Copilot chat no longer hangs after Slack approval: The chat interface no longer freezes after a message is approved from Slack.
- Copilot message retries: Copilot now only resets its retry counter after a message succeeds, preventing repeated retries from being miscounted.
- Notification creation error: Fixed an issue where creating a notification could fail with an ambiguous error.
- Bills custom saved view persistence: Custom saved views on the Bills list no longer disappear when you switch list tabs.
- Vendor payment open transactions refresh on company change: Open transactions on vendor payments now refresh correctly when you change the company, instead of showing stale or placeholder data.
- Sandbox creation form validation: The Provision new sandbox form now shows only the inline validation message when required fields are missing, instead of also showing the browser’s native validation bubble.
- MCP connector installation reliability: Several MCP connectors that previously failed to install from the Browse Tools list, including Dropbox, now install correctly.
- Multi-line FX bill payment rounding: Vendor payments on multi-line foreign currency bills no longer leave a small unresolved rounding residual.
- Audit trail tab filters: Search filters on the Audit Trail tabs now work correctly.
- API reconciliation reconnect messaging: Reconciling from the API now clears expired QuickBooks or Xero connections and shows the correct reconnect message instead of failing silently.
- Bulk import failed filter accuracy: The Failed status filter in Bulk Import now shows only fully failed imports, not partially completed ones.
- OP Bank search: OP Bank and other similarly named institutions now rank correctly in bank connection search results.
- Income Statement row and column placement: Adding a classification to both rows and columns on the Income Statement no longer forces both into the column axis.
- Faster Income Statement loading: Income Statement reports with a reporting currency different from the base currency now load faster.
- Xero item sync fallback account: Xero items without a mapped sales, purchase, or asset account now sync using the default income account instead of failing.
- Stripe invoice sync error messaging: Stripe invoice sync now shows a clear setup message when a required account mapping is missing, instead of failing silently.
- Stripe clearing account setup: Setting up the Stripe integration no longer fails when creating the clearing bank account if the integration company belongs to a different organization.
- Ramp vendor mapping sync accuracy: Ramp sync no longer reports a vendor mapping as missing when it is already mapped in DualEntry.
- Ramp bill sync with amortizable assets: Ramp bill sync no longer fails when updating a bill that drops a line already linked to an amortizable asset.
- Public API v2 list responses: The public API v2 endpoints now return inline list items again, matching prior behavior.
9 new features, 12 improvements, 1 fix
New features
- Collapsible account hierarchy in reconciliations: You can now expand and collapse account groupings in the reconciliations view, making it easier to navigate accounts with many nested levels.
- Refined Copilot send button: The send button in the AI copilot composer is now sized to match the other toolbar icons for a more consistent look.
- Contract recognition frequency and interval: You can now set recognition frequency and interval directly on the contract form.
- Automatic bill status updates: Bills now automatically move to Paid status once the net balance reaches $0.
- More precision in consolidated exchange rates: You can now enter up to 9 decimal places in consolidated exchange rate fields.
- Preserved line items when changing company on a journal entry: Changing the company on a journal entry now preserves non-bank account line items instead of clearing them.
- Search by project ID: You can now search for projects using a partial or prefixed project ID.
- Revenue recognition batch search: You can now search for revenue recognition batches from both the record list and the workflow search.
- Native VAT rates for country-only vendor addresses: You can now select native VAT rates on bills for vendors whose address only specifies a country, without requiring full VAT registration details.
- Cleaner bank match rule editor: The bank match rule editor now uses consistent heading styles, and long rule names are truncated so the title and Save button no longer overlap.
- Usage-tier contract form improvements: The usage-tier contract form now includes clearer copy, an estimated total contract value, a block-size rule, and a First Unit column.
- Warning on future-dated transactions: Saving a future-dated transaction now shows a warning popup so you can confirm the date before saving.
- Balance table on statistical accounts: Statistical account details now include a balance table.
- Consolidated currency selector on the Dashboard: The Dashboard currency selector now includes a consolidated option and a parent-company picker.
- Status filter for payment methods: The payment methods list now includes a status filter so you can show only active or inactive methods.
- Clearer classification required-for field: The classification “Required for” field is now grouped into a two-column layout with group toggles and a clear-all option.
- Multi-period purchase order allocation: Purchase orders now support allocating quantities and amounts across multiple periods.
- Optional items mapping for QuickBooks Online migrations: QuickBooks Online NextDay migrations now include an optional step for mapping items, matching the existing vendor and customer mapping steps.
- Negative rates for discounted migration items: Discounted line items imported from QuickBooks Online now keep the original item and apply a negative rate instead of creating a separate discount item.
- Zero quantity allowed on invoice lines: Invoice line items can now have a quantity of zero. Negative quantities are still rejected.
- GST support for additional countries: Avalara tax calculation now supports GST for Australia, New Zealand, Singapore, and Malaysia, including cross-border transactions.
- Custom report pivot columns no longer show
$NaN: Custom reports with more than one row pivot dimension were displaying$NaNin the dimension columns instead of labels. These columns now render correctly as text.
28 new features, 11 improvements, 51 fixes
New features
- Amortization memo field: You can now add a custom memo field to amortization records in Credit Genie for clearer record keeping.
- Contract change orders: A new change order interface lets you manage baseline and seat changes on contracts directly.
- Contract usage display: Contract usage details are now visible in the contracts UI.
- Contracts list export: You can export contracts and performance obligations directly from the contracts list.
- Bank Match check number column: The Bank Match transactions table now offers an optional Check Number column.
- Bank Match grouping view: The Matched and For Approval grouping views in Bank Match received visual polish for easier scanning.
- Separate invoice amount filters: The Invoice Overview page now offers distinct Amount and Amount Due filters.
- Future-dated transaction warning: DualEntry now warns you before saving a transaction dated in the future.
- Customer refund line amount: Selecting a line item on a customer refund now auto-populates the line amount.
- Custom field export: You can export selected rows including custom fields from list views.
- Bank connections public API: A new UI flow supports connecting bank accounts through the Bank Connections public API.
- Ownership and NCI reporting: New Owners, Ownership Setup, Effective Ownership and NCI, Ownership Allocation, and Owner Portfolio report pages give you visibility into ownership structures and allocations.
- Flexible Excel downloads: “Download as Excel” now offers separate options for a single file or multiple files.
- NetSuite subsidiary mapping: NetSuite subsidiaries now map to your existing company tree, and account mapping displays the matching NetSuite subsidiary and DualEntry company.
- Delete reconciliations from history: You can now delete a reconciliation directly from the reconciliation history.
- Cash sale re-credit warning: DualEntry now warns you before re-crediting a cash sale that already has a customer credit, with a link to the existing credit.
- Restricted vendor access for companies: Company vendor access can now be restricted, giving you finer control over who can view or edit vendor records.
- Canada GST tax calculation: DualEntry now calculates GST, HST, PST, and QST for eligible Canadian transactions through Avalara. Native GST calculation remains as a fallback for unsupported flows.
- Statistical balances API filters: The statistical account balances API now supports filtering by account, classification, and classification line.
- Intercompany journal entry line pagination: Intercompany journal entry line results in the public API are now paginated.
- Onboarding checklist for new prospects: New prospects are now routed to an onboarding checklist with a guided tour on first login instead of directly to the copilot.
- Branding preserved on sandbox migration: Migrating a sandbox organization now preserves your existing logo and brand color.
- Multi-year ramp deal grouping: Performance obligations on multi-year ramp deals can now be grouped together.
- Customer credit approval workflows: You can now create approval workflows for customer credits.
- Invoice template list: You can now view a list of your invoice templates.
- Resizable reconciliation columns: Columns in the reconciliation view can now be resized.
- Milestone completion sequencing: Contracts with sequential milestones enabled now reject completing a milestone out of order.
- API line-level endpoints: The API now exposes top-level line collection endpoints for resources, giving direct access to line-level data.
- Bulk transaction creation: You can now multi-select while creating transactions and load an additional 1,000 rows at a time.
- Audit trail for role changes: User role and permission changes now appear in the Activity and Audit Trail log.
- Sortable customer and vendor lists: Customers and vendors can now be sorted by name, number, or any other column.
- Journal entry reversal improvements: Reversing a journal entry now validates that it hasn’t already been reversed, and the reversal updates the memo and header automatically.
- Custom report builder improvements: Number placeholders in the custom report builder are clearer, and you can now filter reports by custom field and custom field lines.
- Multi-entity migrations: Data migrations now support multi-entity organizations.
- Statistical account balance table: The statistical account details view now includes a balance table.
- Organization commands tab: Organization management now includes a Commands tab.
- Consistent immutability errors: DualEntry now returns the same error across the API, MCP integration, and bulk transaction actions when you try to edit a posted record blocked by your organization’s immutability policy.
- Consolidated exchange rate decimal precision: Consolidated exchange rate fields now support up to 9 decimal places.
- Chart of accounts exclusion filter: The chart of accounts API filter now supports excluding specific accounts by ID.
- Vendor payment detail view: The vendor payment detail view no longer shows stale data after an edit.
- Bank statement upload permissions: Accountant roles with full Bank Match permissions can now manually upload bank statements as expected.
- VAT calculation on money-out: Non-US VAT calculations now apply correctly on money-out transactions, and expenses and items are taxed together.
- Inbox pagination footer: The pagination footer in the Inbox no longer shifts position when fewer records are displayed.
- Invoice payment status filter: The “Paid” filter on the invoice list no longer displays unpaid invoices.
- Product tax code creation: Clicking “Create New Product Tax Code” no longer refreshes the page.
- Audit trail links: Audit trail entries for account and integration changes now include working record-number links.
- Direct expenses layout: Fixed layout shift, account name trimming, and form width issues on the Direct Expenses page.
- Sidebar tooltips: Collapsed sidebar icons now show tooltips on hover.
- iPad navigation: You can now click the top navigation bar on Apple iPad.
- Xero account mapping: Account mapping no longer stays gated after the Xero sync status changes.
- Interactive Brokers bank connections: Transactions now pull through correctly for Interactive Brokers Plaid bank connections.
- Organization management form fields: Input fields no longer misalign when a validation error is displayed.
- Brex GL sync: New GL accounts now sync to Brex and are selectable as expected.
- Reports customer selection: Selecting many customers in a report no longer causes a request error.
- Dashboard KPI tiles: KPI tiles now display “unavailable” instead of a misleading value when a metric is null.
- Custom report formulas: Saving a custom report is now blocked when a formula references a missing row, preventing broken reports.
- Package run downloads: “Download as PDF” now downloads a PDF instead of an Excel file.
- Report explanation field: The explanation field in reports no longer truncates in the rightmost column.
- Owner type dropdown spacing: The Owner Type dropdown in Owner Setup no longer opens with excessive spacing.
- AR Aging customer filter: The customer filter in AR Aging no longer incorrectly hides valid customers based on the company filter.
- Report column picker: The drag handle for reordering columns remains visible for columns with long names.
- Report headers with special characters: Reports no longer fail to load when a column value contains ”::”.
- Pivot column filters: Selecting and clearing pivot column options now applies and clears filters consistently.
- Bulk import status: Bulk imports that partially succeed no longer display as a failure.
- Onboarding flow order: Locked sandbox organizations now see the welcome screen before the AI tour.
- Contract page loading state: The new contract page now shows a skeleton instead of a spinner while loading.
- Journal entry company change: Changing the company on a journal entry now preserves non-bank lines instead of clearing them.
- Zero-amount bills: Bills with a zero amount are now correctly treated as paid.
- Copilot topbar: Improved the appearance of the copilot button and avatar in the top navigation bar.
- Badge alignment: Badge content is now centered correctly.
- Classification picker: Added an Apply button to the classification picker so the bulk modal save action is visible after making a selection.
- Scheduled agent card: Long schedules on scheduled agent cards are now truncated to fit the card.
- Currency revaluation account coverage: Currency revaluation now surfaces all monetary accounts, including accounts receivable and accounts payable, instead of only bank accounts.
- For Approval empty state: The For Approval empty state now shows a “Create new” action consistent with the Overview and Archived views, across purchase orders, invoices, bills, and journal entries.
- Cross-border tax registration numbers: Cross-border tax calculations between GST and VAT jurisdictions now include the buyer’s tax registration number, so these transactions are correctly treated as business-to-business.
- QuickBooks Online discount migration: Fixed a QuickBooks Online migration issue where invoices and credit memos with discount lines failed with a “Discount item does not exist” error.
- Retained Earnings account classification: The Retained Earnings system account, along with other system accounts of non-monetary account types, is now correctly classified as non-monetary.
- Custom reports with multiple row dimensions: Custom reports with more than one row dimension no longer display “$NaN” in the row-dimension columns.
- Pivot layout toggle: The Pivot layout toggle now reflects dimensions on both the row and column axes, so it no longer mislabels the layout when a dimension remains on rows.
- Ownership setup persistence: Owners and ownership records created in Ownership Setup now persist after a page reload instead of resetting.
- Product tax codes without Avalara: Product tax codes are now hidden from navigation for organizations that do not have an Avalara integration.
- Contract change order SSP reallocation: Change orders that add a new purchase order no longer double the invoice and revenue recognition total contract value.
- Ramp statistical account sync: Ramp syncs no longer fail when an organization has an active statistical account that hasn’t yet synced to Ramp.
- QuickBooks bill import recovery: QuickBooks bill imports no longer leave the import batch in a broken state after a line data error, so subsequent imports proceed correctly.
- Copilot account balances visualization: The Account Balances report visualization in the copilot now renders correctly instead of failing to display.
- Chart of accounts exclude filter display: Selected accounts no longer continue to display in the chart of accounts after you apply an exclude filter.
- Date and period mismatch report performance: The Date and Period Mismatch report now loads faster.
- Balance sheet detail net income: The Balance Sheet detail view now calculates Net Income using fiscal year-to-date activity for mid-year periods, matching the summary and income statement views instead of showing period-only activity.
- Custom report row pivot flattening: Flattening a multi-dimension row pivot on a custom report no longer deletes row groups, section headers, and formula rows.
- Stuck migrations: Fixed an issue where data migrations could get stuck and fail to complete.
10 new features, 7 improvements, 21 fixes
New features
- Deactivate customers via API: The customer API now supports deactivating a customer record, matching the behavior already available in the UI.
- Warn on future-dated postings: Organizations that allow future-dated postings can now enable a warning that flags them before posting.
- Credit-aware tax estimation: Tax estimates for transactions with vendor or customer credits now match the amounts calculated when the transaction is committed.
- Bank Connections public API generally available: The public Bank Connections API is now always available and no longer requires an early-access flag.
- Confirmation required for connected app actions: Actions taken through connected apps (such as sending email) now require your explicit confirmation before they run. This matches the protection already applied to other write actions in the copilot.
- Approval workflows for bulk record actions: Approval workflow gates now apply to bulk record actions, so bulk edits can require approval the same way individual edits do.
- Contract list filters and dashboard widgets: You can now filter the Contracts list and add or edit widgets on list dashboards.
- NetSuite subsidiary mapping to your company tree: Manual NetSuite migrations now map subsidiaries to your existing company tree, mapping the global parent automatically and guessing the rest based on your organization structure.
- Contract edits and change orders in the API: The API now supports editing contracts and adding nested change orders, matching the contract editing capabilities already available in the UI.
- NetSuite and Sage migrations treated as org-level: The Migrations page now separates company-level connections, such as QuickBooks and Xero, from an org-level NetSuite and Sage block that is not tied to a single company. The page also prevents starting a second NetSuite connection for the same organization.
- Audit trail for role and permission changes: User role and permission changes now appear in the activity and audit trail, with filtering and CSV export support.
- Sort customers and vendors: You can now sort the Customers and Vendors lists by name, number, or any other column.
- Faster Bank Match suggestions: Bank Match suggestions now return noticeably faster thanks to a redesigned suggestion pipeline.
- Faster AR aging digest in the copilot: The copilot’s AR aging digest now returns in a fraction of the time it previously took.
- Better recurring vendor spend detection in the copilot: The copilot now finds missing recurring vendor spend across bills, direct expenses, and journal entries, not just bills.
- Code field for bills and journal entries: Bills and journal entries now have a code field that you can view, edit, and filter by.
- NetSuite account mapping shows subsidiary and company: NetSuite account mapping now shows which subsidiary each account came from and which DualEntry company it maps to, with dedicated columns and filters for both.
- Zoho invoice Locations: Fixed an issue where renamed classification lines caused Location values to drop off of synced Zoho invoices and credit notes.
- Vendor and customer import mapping: Fixed an issue where importing a vendor or customer with a name that already existed (including case differences or previously deleted records) left the mapping stuck in an error state.
- Moving transactions into credit card accounts: Fixed an issue that prevented moving bank-type transactions into a credit card account.
- Consolidating matched bank and card accounts: Fixed an issue that prevented consolidating cash-like accounts, such as two linked accounts for the same card, into a single matched account.
- Duplicating a demo instance: Fixed an issue that prevented duplicating a DualEntry demo instance into a new instance.
- Post-migration welcome screen: Fixed an issue where converting to a migrated sandbox skipped the intended welcome screen and redirected straight to the copilot.
- Copilot chart rendering: Fixed an issue where certain cash bridge and MRR movement charts failed to render and showed an “unable to generate artifact” error.
- Copilot citation links: Fixed an issue where longer documentation links in copilot responses could appear corrupted.
- Report export permissions: Fixed an issue where report exports did not enforce the same view permissions as the underlying report, and where one user could access another user’s exports.
- Bill.com vendor credits: Fixed an issue where applying a vendor credit to an already-paid bill caused the payment to fail importing.
- Stripe subscription sync: Fixed an issue where subscriptions failed to sync into contracts when the associated Stripe customer name was a single character.
- Payroll sync reliability: Fixed issues where payroll syncs failed on zero-amount pay statements and on archived duplicate transactions instead of completing successfully.
- Salesforce sync for optional objects: Fixed an issue where Salesforce organizations without Quote or Order objects enabled could report sync errors unnecessarily.
- Copilot recovery from malformed tool calls: Fixed an issue where the copilot would stop responding after a malformed tool call instead of retrying.
- Brex synthetic transaction classifications: Fixed an issue where synthetic Brex transaction lines did not carry over classification lines from the original lines, which could cause save errors.
- Bill.com vendor payment sync retries: Fixed an issue where a temporary error while fetching a later page of Bill.com vendor payments could abort the entire sync. DualEntry now retries and falls back to already-fetched results.
- Contract update performance: Fixed a performance issue that caused contract updates to run unnecessary extra queries.
- NetSuite transaction amounts: Fixed an issue where transaction amounts did not populate for NetSuite-migrated data.
- Bulk import status display: Fixed an issue where a bulk import with some failed rows displayed as fully failed instead of showing as a partial success.
- Cash report sync retries: Fixed an issue where a temporary error while fetching a cash report caused the sync to fail instead of retrying.
- Brex transaction export issues: Fixed issues where certain Brex transactions failed to export, including false missing-department errors, duplicate vendor postings, and VAT tax resolution failures for companies in non-VAT countries.
2 new features, 5 improvements, 7 fixes
New features
- Choose one file or multiple files for Excel report package downloads: The report package download menu now offers a single multi-sheet workbook or a ZIP file containing one workbook per report. You can pick the format that fits your workflow.
- Export contracts from the contracts list: You can now export the contracts list, in addition to viewing contract performance.
- Monthly split by default on Cash Flow Statement: The Cash Flow Statement summary now opens with a monthly breakdown, matching the Income Statement and Balance Sheet. A Total/Monthly toggle is now available directly in the report toolbar.
- Warn on future-dated transactions: Organization settings now include a toggle to warn users when they post a transaction with a future date. The warning is off by default and resets automatically if future-dated posting is disallowed.
- Sort customers and vendors tables: You can now sort the customers and vendors tables by column, making it easier to find specific records.
- Audit tab added to roles: Roles now include an audit tab so you can review changes made to role configuration over time.
- Helper text in Stripe settings: The Stripe settings drawer now includes helper text to clarify configuration options.
- Faster scrolling on large reports: Reports with wide pivots or many rows no longer stall or show blank rows while scrolling. Scroll performance on large reports improved substantially.
- Correct file format on report package downloads: Downloading a report package as PDF no longer returns an Excel file when the package’s export setting was configured for Excel.
- Migration account mapping display fixed: The migration accounts mapping tab now displays correctly instead of showing stale or incorrect sync status.
- Bank transfer records stay up to date: Editing, duplicating, or updating a bank transfer now correctly refreshes its detail view instead of showing stale data.
- Vendor payment mappings refresh after update: Updating a vendor payment mapping now immediately reflects the change instead of showing outdated mapping data.
- Fixed record pages for purchase orders and related records: View, edit, and duplicate pages for records like purchase orders no longer show stale data. Navigating to a record that no longer exists now shows a proper not-found message.
- Improved sidebar label readability: Navigation menu labels in the sidebar are now easier to read against the sidebar background.
3 new features, 8 improvements, 19 fixes
New features
- Line amount on customer refunds: Selecting a line on a customer refund now automatically populates the line amount.
- VAT support for Avalara on bills: Avalara now calculates VAT on vendor bills, in addition to the existing support for customer invoices.
- Reconnect bank connections without losing history: Reconnecting a previously disconnected bank connection now reuses its existing connection record and history instead of creating a duplicate.
- Separate invoice filters: The invoice overview page now has independent filters for amount and amount due, so you can filter on either value without one overriding the other.
- Export selected rows only: When exporting from a filtered close checklist view, the export now respects your selected rows instead of exporting everything.
- Check number on bank match transactions: Deposit entry transactions in bank matching now display the check number, making it easier to match deposits to the correct check.
- Vendor support in tax calculation logs: Tax calculation logs now support vendor transactions in addition to customer transactions.
- Multi-contract usage option in bulk import: The bulk import UI now shows an option to display multi-contract usage.
- Memo on amortization schedules: The amortization schedules table now includes a memo column.
- Improved reversal journal entry page: The reversal journal entry page has clearer memo and header text.
- Warning for already-reversed journal entries: DualEntry now shows a warning when you try to reverse a journal entry that has already been reversed.
- Ramp reconnect: Fixed an issue preventing users from reconnecting their Ramp integration.
- iPad top navigation bar: Fixed an issue on Apple iPad where the top navigation bar could not be clicked.
- Tax tooltip alignment: The tax tooltip is now centered correctly.
- Tax calculation infinite loop: Fixed an issue where tax calculation could get stuck in an infinite loop.
- Custom report formula validation: Custom reports now block saving when a formula references a row that no longer exists, preventing silently incorrect totals.
- External link security: Links entered in checklists, custom fields, and customer or vendor website fields now only accept
httpandhttpsaddresses, preventing unsafe links from being clickable. - “Explanation required” text: Fixed incorrect wording in the explanation required message.
- Collapsed sidebar popovers: Popovers now render correctly on hover for all items in the collapsed sidebar.
- Inbox table layout: Tables on inbox pages now fill the entire available width.
- Invoice payment status: Fixed an issue where invoice payment status was not displayed correctly.
- Sandbox creation form validation: Fixed the form validation layout on the sandbox creation page.
- Automated bank rules and approval workflows: Automated bank rules no longer bypass approval workflows; matches created by rules now route through approval the same way manual matches do.
- Brex VAT import balances: Fixed a rounding issue that could cause Brex VAT import balances to not match the base currency amount.
- QuickBooks migrations for service items: Fixed an issue where QuickBooks migrations required a default expense account even for service-only items that only need an income account.
- Budget report filters: Fixed several filter and display issues on the budget report.
- Project activity tab: Fixed an issue where the Projects activity tab showed no activity.
- Paper check template permissions: Fixed incorrect permissions on paper check templates so creating, editing, archiving, and changing status require the correct permission instead of view access.
- AI copilot connected tools: Fixed an issue where the AI copilot could stop responding mid-conversation when using connected tools like Gmail or Slack.
- Duplicating instances: Fixed an issue that prevented duplicating an instance into a new instance.
3 new features, 1 improvement, 11 fixes
New features
- Payroll posting cadence review: The AI copilot can now review payroll posting patterns across companies and months to flag gaps in salary and payroll expense postings, including late catch-up entries.
- Filter reports by custom field: Reports can now be filtered by custom field and custom field values, including an option to view records with no value assigned.
- Idempotency keys for the public API: The public API now accepts an
Idempotency-Keyheader so retried requests do not create duplicate records.
- Custom field pivot Unassigned column: Reports pivoted by custom field now include an Unassigned column so transactions without a custom field value are still counted in report totals.
- Zero-rated tax support: Invoices with zero-rated tax now post correctly to the general ledger and appear in VAT return reports instead of being excluded.
- More reliable AI copilot answers: Fixed an issue where the AI copilot’s knowledge base could silently drop relevant documentation, improving the accuracy of citations and answers.
- Month-over-month expense comparisons: The AI copilot now compares month-over-month expenses using full general ledger account detail and notes when foreign exchange rates may affect the comparison.
- Budget report company filter: Fixed an issue where budget reports showed the same figures regardless of which companies were selected.
- Brex transaction duplicates: Fixed a bug that created duplicate Brex transactions and caused general ledger imbalances.
- Custom report percentage formulas: Fixed custom report formula rows that ignored the “Show as percentage” setting when every referenced row was already a percentage.
- Editing reconciled direct expenses: You can now edit safe fields such as memo, check number, custom fields, and classifications on a reconciled direct expense.
- Close checklist status filter: Fixed the Completed status filter in close checklists so it no longer shows checklists that have not been started.
- Chart of Accounts status filter: Fixed the Active and Inactive status filters on the Chart of Accounts so they show only matching accounts.
- Ramp foreign-currency payments: Fixed an issue where Ramp foreign-currency payments used DualEntry’s exchange rate instead of the bank’s actual rate, causing a mismatch with the bank.
- New organization billable line default: New organizations now default billable lines to off, so new line items are not marked billable unless enabled by an admin.
6 new features, 5 improvements, 18 fixes
New features
- Contract and performance obligation export: Export the contracts overview list and performance obligations to CSV directly from the list page.
- Horizontal bar chart orientation: Vendor spend, revenue ranking, MRR movement, and flux analysis charts now consistently support horizontal orientation.
- Search by unique ID: Customers and vendors can now be found by searching their unique ID.
- NetSuite migration connector: Migrate journals, invoices, bills, payments, and deposits from NetSuite using the new Rutter-based connector.
- Package report Excel export: Report packages can now export as a multi-sheet Excel workbook or as a ZIP file containing one worksheet per member report, and scheduled run emails attach the selected format.
- Intercompany company ID on more record types: Direct expenses, cash sales, vendor credits, and customer credits now expose a line-level
company_idin the public API, matching bills and invoices for Centralized Intercompany Billing.
- Tiered pricing change orders: Contract change orders now support tier-based usage pricing changes.
- Multi-contract usage import: The bulk usage import tool now supports writing usage records across multiple contracts, including SKU mapping and validation.
- Migration Data Sync transaction date filter: The Migration Data Sync table now includes a transaction date filter option.
- Salesforce multi-tab field mapping: Salesforce migrations now support mapping fields across the Items, Contracts, and Performance Obligations tabs.
- Tax-exempt status on customer creation: The public API now accepts an
is_taxablefield when creating a customer, so integrators can set tax-exempt status at creation time.
- Copilot artifact retrieval: The AI copilot now correctly loads full prior table or report data when you ask a follow-up question, instead of substituting unrelated results.
- Subscription revenue answers: The AI copilot no longer confuses budgeted amounts with recognized revenue when answering subscription revenue questions.
- Copilot Gmail and Slack connections: The AI copilot now connects reliably to Gmail and Slack integrations.
- Duplicate transaction alerts: Multi-entity bills no longer generate duplicate “potential duplicate” alerts for their elimination and line company mirror transactions.
- Reconciliation status: Reconciliations now calculate balances using only posted items, fixing cases where a reconciliation stayed marked as not reconciled with a zero variance.
- Bank Match archiving: You can now archive agent-matched (purple) transactions in Bank Match.
- Reconciliation period boundaries: Reconciliations no longer pull in transactions dated after the statement period.
- VAT report reverse-charge classification: The VAT report now correctly classifies reverse-charge transactions based on externally computed tax data.
- Tax-exempt customer transactions: Transactions for Avalara tax-exempt customers no longer show an incorrect “no tax” error.
- Billable expenses vendor display: The Billable Expenses list view now shows the vendor for Direct Expense transactions.
- Vendor payments list performance: Loading the vendor payments list is significantly faster.
- Xero migration empty invoice lines: Xero migrations now handle bill and invoice lines with missing account, quantity, or amount data instead of failing.
- Bulk bill updates: Fixed an error when bulk updating bills that reference an AP account.
- Ramp foreign currency payments: Foreign currency bill payments imported from Ramp now use Ramp’s actual bank exchange rate, so the general ledger matches the bank.
- Xero payroll journal migration: Payroll journals from Xero now migrate correctly into DualEntry.
- VAT Return Report filters: Country, direction, and rate type filters on the VAT Return Report now correctly filter the underlying data.
- Retained Earnings drilldown: Retained Earnings drilldown links on the balance sheet and trial balance now open the correct general ledger detail.
- Brex vendor matching: Vendor matching for Brex transactions is now case-insensitive, preventing duplicate vendor creation errors.
2 new features, 4 improvements, 3 fixes
New features
- Journal entries for currency revaluation: Currency revaluation runs now generate the associated journal entry, so you can see the resulting entry directly alongside the revaluation.
- Default billable toggle in organization settings: You can now set a default billable status for new expenses at the organization level, reducing manual entry when creating expenses.
- Custom fields as list columns: Customers can now show custom fields as columns in the customer list, making it easier to view and compare customer data at a glance.
- Linked records column for billable expenses: Billable expense line items now display a linked records column, making it easier to see which records each line is tied to.
- Posted invoices columns for billable expenses: Billable expenses now show additional columns for posted invoices, giving you more visibility into invoicing status without leaving the list view.
- Activity tab on projects: Projects now include an activity tab so you can track recent changes and updates to a project in one place.
- Accountant user assignment on Close Checklist: Accountants with view or edit access to the Users module can now see the user list when assigning Preparers or Reviewers on the Close Checklist.
- Invoices with a zero grand total: Invoices with a grand total of zero can now be saved and processed instead of being blocked.
- False required classification errors: Line classification errors no longer flash incorrectly while requirements are still loading, and the form now waits for validation to settle before allowing submission.
5 new features, 4 improvements, 10 fixes
New features
- Approval workflow for stopping future amortization: Stopping future amortization on a schedule now routes through your approval workflow instead of applying immediately.
- Inbox transactions ordering by date: You can now order the Journal Entries approval inbox by date, in addition to the existing sort options.
- Bank match group aware approve and reject: Approving or rejecting a bank match now applies consistently across all transactions in the same match group.
- Paginated vendor prepayment lines (API v2): The v2 API now paginates vendor prepayment lines, making large prepayment schedules easier to retrieve.
- Onboarding checklist visible for sandbox organizations: The onboarding checklist no longer hides itself in sandbox organizations, so a custom onboarding tour prompt can be shown.
- Statistical journal line validation: DualEntry now validates the account type used on statistical journal lines, catching mismatched accounts before posting.
- Vendor payment import supports payment method name: Bulk vendor payment imports now accept a payment method name column, so you no longer need a separate step to set it after import.
- Customer list includes default payment terms and AR account: The customer list now returns default payment terms and the default AR account for each customer, so these can be shown as columns without an extra lookup.
- Journal entries orderable by date: You can now sort journal entries and vendor refunds by their posting date directly, matching what’s shown in the Date column.
- Billable expense markup applied to generated invoices: Item level markup defaults are now applied when generating invoices from billable expenses, so the markup shows up on the invoice as expected.
- Default classification applied on API created items: Items created through the API now receive their default classification, matching behavior already present in the UI.
- Change order reads no longer fail on legacy data: Reading a change order with malformed legacy data no longer crashes the request.
- Expensify integration marked as coming soon: The unreleased Expensify integration is no longer shown as available in the integrations list.
- Direct expenses list filter respects excluded account: Filtering direct expenses now correctly excludes the account specified in
exclude_account_id. - Invoice line comparison detects account remapping: Resyncing invoices now detects when an account has been remapped in your accounting source, so updates apply to the correct account instead of silently drifting.
- Bank sync no longer stalls on degraded connections: Bank connections in a degraded state are skipped during sync instead of being retried. A visible sync run entry is recorded so the skip isn’t mistaken for a missed sync.
- Long-running Cubby scans no longer trigger duplicate syncs: Long cash report scans now send a heartbeat during processing, preventing the system from mistakenly starting a second sync because the first looked stalled.
- Reduced stuck pending syncs on repeated triggers: Sync requests that arrive while a sync is already queued no longer create duplicate pending syncs that could age into a false “did not complete” state.
- Large Salesforce imports no longer skipped entirely: Salesforce opportunity imports now split large ID lookups into smaller batches sized to fit within request limits, so organizations with many custom fields no longer have their opportunity sync silently skipped.
5 new features, 2 improvements, 16 fixes
New features
- Date format options: Added MMM D, YYYY and D MMM YYYY date format options to organization, company, and user preferences.
- Reports save action: Added a “Save report” button to all report toolbars for easier access to save functionality.
- Bank match export filters: Exports now honor all on-screen filters, including date ranges and amounts.
- Project duplication navigation: After you duplicate a project, you’re returned to the Projects Overview list instead of the detail page.
- Skip rules builder: Added a skip rules configuration interface for the Salesforce integration.
- Billable expenses improvements: Enhanced invoice generation with improved formatting and a streamlined interface.
- Dashboard permissions: Dashboard and widget creation controls now respect user permissions.
- Copilot navigation: Fixed the New Chat button disappearing when navigating to non-chat Copilot pages like Skills and Connectors.
- Contract tab navigation: Fixed an issue where approval status filters prevented switching between contract tabs.
- Chart of accounts footer: The account detail drawer footer with the Edit button now stays pinned at the bottom instead of scrolling away.
- Company parent changes: Improved error messages when changing parent company relationships, with clearer explanations and next steps.
- Bank match scrolling: Fixed a vertical scrolling issue in the Bank Match Auto tab where suggestions below the fold were unreachable.
- Avalara nexus display: Fixed the display format for countries without regions (no longer shows “GB:null”).
- Invoice payment status: Removed the irrelevant payment status filter from recurring invoice pages.
- Statistical journal archiving: Added the ability to archive and recover Statistical Journal entries.
- Badge text clipping: Fixed vertical text clipping in badge components.
- Product tax code validation: Now properly rejects whitespace-only entries for code and description fields.
- Archive action labels: Fixed archive and recover keyboard shortcuts and improved label accuracy across recurring transaction lists.
- Recurring transaction drafts: Fixed the “Save as Draft” button being incorrectly disabled when creating recurring transactions.
- Account categorization: Improved the account dropdown in transaction forms to show the parent account path alongside child account names.
- Integration display issues: Fixed various layout and overflow issues in integration settings pages.
- Source map uploads: Fixed Sentry source map uploads to enable better error debugging in production.
- Onboarding widget stability: Isolated the onboarding status widget to prevent checklist fetch failures from crashing the home page.
22 new features, 7 improvements, 32 fixes
New features
- Rippling integration: Added complete settings drawer and mapping tabs for Rippling payroll integration with worker type toggles and accounting basis configuration.
- Currency revaluation recovery: Added the ability to recover archived currency revaluation processes, with separate bulk archive and recover actions based on process status.
- Allocation and journal shortcuts: Added deactivate shortcut action for allocation schedules and journals with keyboard support.
- Fixed assets shortcuts: Added keyboard shortcuts and tooltips to fixed assets list and form actions.
- Migration workflow shortcuts: Added keyboard shortcuts and tooltips to migration workflow actions.
- Checklist naming: Added ability to name individual checklists and improved form action buttons layout.
- Amortization shortcuts: Added keyboard shortcuts to amortization form and list actions.
- Recurring records: Disabled “Save as draft” button when creating recurring records to prevent invalid states.
- Rippling payroll sync: Added complete payroll run synchronization from Rippling with automatic journal entry creation for W-2 employees, contractors, and EOR/PEO workers.
- Fixed assets via API: Added ability to create fixed assets with custom field values through the save_record MCP tool.
- Classification approval workflows: Added approval workflow support for classifications and classification lines with configurable review requirements.
- Custom field approval workflows: Added approval workflow support for custom fields with configurable review requirements.
- Item approval workflows: Added approval workflow support for items with configurable review requirements.
- Journal entry lines API: Added new bulk retrieval endpoint for journal entry lines with pagination and date range filtering.
- Direct expense lines API: Added pagination support to the V2 direct expense lines endpoint for improved performance with large datasets.
- Customer credit lines API: Added pagination support to the V2 customer credit lines endpoint for improved performance with large datasets.
- Bulk import error recovery: Added ability to automatically fix common CSV import errors directly from uploaded files without requiring an existing import job.
- Balance sheet customer attribution: Added proper customer attribution for amortization entries in Balance Sheet reports with correct filtering by customer and line customer.
- Custom report audit trail: Added comprehensive audit logging for all custom report creation, modification, and deletion actions.
- Xero classification mapping: Enhanced Xero integration to properly map classification options even when import is scoped to specific category records.
- Paper check API: Added support for creating paper checks through the public API.
- Recurring journal entries API: Added record status filtering and archived listing support for recurring journal entries.
- Bank match improvements: Enhanced “Match all” functionality to process all eligible transactions company-wide instead of being limited to 100 rows, with accurate badge counts matching the Auto tab.
- Invoice overview stats: Moved entity name into stats card titles (now displays “Created invoices”) and removed redundant footer labels for cleaner presentation.
- Contract under-allocation: Milestone authoring now allows partial allocation below contract totals while still preventing over-allocation.
- Custom report labels: Updated custom reports delete action to display “Delete” instead of generic action text.
- Created via labels: Updated transaction labels to show “DualEntry” instead of “Manual” for better clarity.
- IMS cash flow forecasting: Enhanced burn projection calculations to factor in outstanding accounts receivable and payable for more accurate cash flow forecasts.
- Financial statement CTA controls: Improved currency translation adjustment controls to only appear for multi-currency clients with actual CTA balances.
- Column selector checkbox: Fixed Trial Balance column picker where clicking directly on the Debit/Credit checkboxes wasn’t toggling the columns.
- Migration actions: Removed “Archive & replace” option for transactions that haven’t synced to DualEntry to prevent dead-end actions.
- List page loading: Fixed empty state display that was appearing alongside loading tables by moving empty states inside table components.
- Bank match scrolling: Fixed Auto tab suggestions being cut off below the viewport by adding proper scroll container height.
- Agent navigation: Fixed “New Agent” navigation label appearing disabled in the Agents sidebar.
- Tooltip positioning: Updated tooltip placement from bottom to top across various components to prevent clipping.
- Eval case validation: Updated evaluation case forms to require track tags instead of deprecated category tags.
- Filter popover clipping: Adjusted evaluation case table height to prevent filter popovers from being cut off.
- Copilot skills menu: Fixed Skills menu opening in wrong position within the copilot interface.
- Report drill-down: Fixed Waterfall, Invoice Waterfall, and Rollforward reports showing all months instead of the selected month when drilling down.
- Cash flow report links: Fixed custom Cash Flow reports crashing when rendering cells with null href values.
- Revenue schedule refresh: Fixed revenue schedule not updating after editing usage or milestone-based contracts until page refresh.
- Scheduled agent deletion: Fixed detail drawer remaining open with stale content after deleting a scheduled agent.
- Draft contract editing: Fixed period locking incorrectly blocking edits to draft contracts that haven’t generated journal entries yet.
- Scheduled agent frequency: Added minimum value validation for minutes frequency in scheduled agent configuration.
- MCP modal issues: Fixed Remove MCP modal not opening and added proper error handling.
- Table box shadows: Fixed missing box shadows on first and last columns in horizontally scrollable tables.
- Vendor mandatory fields: Fixed mandatory field indicators appearing inconsistently for vendor forms.
- Company shortcuts: Fixed Escape key conflicts in company forms when multiple overlays have unsaved changes.
- AI artifact generation: Fixed skills that don’t produce artifacts incorrectly triggering artifact generation processes.
- Copilot entity resolution: Improved entity matching to properly find vendors when searching by acronyms like “AWS” matching “Amazon Web Services”.
- Bank reconciliation status: Fixed completed reconciliations with zero difference incorrectly showing as “Not-reconciled” status.
- Custom report builder: Fixed removed rows disappearing after save and refresh, preventing users from restoring previously removed items.
- Integration settings updates: Fixed migration settings failing when multiple duplicate IntegrationSetting records exist for the same configuration.
- Customer file management: Fixed deleted files continuing to appear on Customer Details screens instead of being properly removed from the list.
- Payment amount validation: Fixed “Unassigned amount must be greater than or equal to 0” error appearing when payment amount is less than applied amount.
- Vendor name duplicates: Fixed ability to create duplicate vendors when names differ only by case sensitivity.
- Date period mismatch reports: Fixed Date/Period Mismatch Report incorrectly flagging auto-generated reversal journal entries as errors.
- Balance sheet pivoting: Fixed Balance Sheet pivot functionality when grouping by classification, customer/vendor, or item dimensions.
- Contract error messages: Fixed contract creation errors showing generic “Referenced record not found” instead of specific validation messages.
- Duplicate vendor handling: Fixed integration errors when multiple vendors share the same name by improving vendor lookup specificity.
- Dashboard permissions: Fixed dashboard widget creation and modification incorrectly allowing users with only View permissions to make changes.
13 new features, 4 improvements, 30 fixes
New features
- Billable expenses: Added support for generating draft invoices from billable expense items with project-based tracking.
- Revenue recognition: Added milestone-driven billing option for MILESTONE contracts, enabling automatic invoicing upon milestone completion.
- Statistical journal entries: Added record-level statistical account field and prevented statistical accounts from appearing in monetary transaction pickers.
- Reports: Added Customer column to Fixed Asset Register report and enabled Year/Month pivot layout on Trial Balance summary.
- Tax setup: Added support for fixed-rate VAT calculations from AvaTax with automated rate application.
- Integration: Added bulk classification mappings for Deel integration and enhanced Ramp settings with improved tab visibility.
- Bank matching: Added support for many-to-many bank transaction matching for complex reconciliation scenarios.
- Approval workflows: Extended approval workflows to custom fields for enhanced master data governance.
- Bulk operations: Added bulk posting capabilities for revenue recognition contracts.
- API enhancements: Added bank match status field to Cash Sale, Direct Expense, Vendor Prepayment, and Customer Payment API responses.
- Vendor management: Added case-insensitive name uniqueness validation for vendors to prevent duplicate entries.
- Paper checks: Added API endpoint for creating paper checks programmatically.
- Copilot charts: Added horizontal bar chart orientation support for enhanced data visualization options.
- Customer parent accounts: Account dropdowns now display full parent account paths for better visibility in complex chart structures.
- Keyboard shortcuts: Added shortcuts for revenue recognition contract actions and improved shortcut display with OS-specific modifier key symbols.
- Copilot: Enhanced AI module with improved sidebar navigation and timezone-aware chat messaging.
- Fixed assets: Added source transaction number field to Fixed Asset Register exports for better audit trails.
- Archive operations: Fixed missing success notifications when archiving or recovering records from list views across multiple modules.
- Customer payments: Fixed currency filter functionality to properly filter payment records by selected currency.
- Form validation: Resolved postal code validation issues and improved error messaging for address fields across forms.
- Contract management: Fixed milestone data preservation when duplicating contracts and prevented editing contracts with active milestones.
- Loading states: Aligned skeleton loading components with actual table dimensions and fixed permanent loading states on various pages.
- Navigation: Fixed sidebar permission alignment with page access rights and resolved stale data display issues after save operations.
- Filter systems: Corrected search functionality across multiple filter types and resolved filter state persistence issues.
- User interface: Fixed pagination positioning on short lists, resolved text overflow issues, and improved bulk action footer placement.
- Revenue recognition: Fixed subledger line filtering and resolved date forwarding issues in post line operations.
- Close management: Improved checklist template refreshing and fixed status representation inconsistencies.
- Reconciliations: Fixed exclude filter behavior to properly exclude matching records instead of showing them in History tab.
- Journal entries: Fixed account exclude filter functionality to properly exclude records from the list view.
- Customer statement: Fixed amount column sorting to work correctly with monetary values.
- Sales orders: Fixed bank account validation error messages displayed during successful record recovery.
- Avalara integration: Fixed product tax code dropdown to display available codes even when Avalara setup is incomplete.
- Brex integration: Corrected transaction cutoff date handling and added missing receipt attachments for reimbursement bills.
- Xero migration: Fixed handling of negative spend transactions by importing them as reversal journal entries instead of failing.
- Bank match rules: Fixed vendor assignment to journal entries created through bank match rules.
- Copilot queries: Fixed slow database queries in transaction monitoring and resolved N+1 query issues in chat tools endpoint.
- Copilot timezone: Fixed timezone handling in plan and execute mode to match user’s local time.
- Copilot artifacts: Fixed title length validation to prevent database errors and resolved artifact listing for messages.
- Customer deposits: Fixed uniqueness validation to ignore archived deposits when re-applying customer payments.
- Classification validation: Fixed required classifications to only validate on account-only lines, not applied invoices.
- Bulk imports: Fixed status reporting for imports where all rows failed and improved error recovery for interrupted imports.
- Export functions: Fixed archived transaction exclusion from reconciliation exports.
- Balance sheet reports: Fixed sub-group totals when pivoting by customer or vendor to properly split beginning balances.
- Trial balance: Fixed year-to-date calculations in pivoted reports to show cumulative values correctly.
- Search functions: Fixed search functionality for paper checks, nexuses, and various record types.
- Integration syncs: Fixed Stripe customer archiving on deletion webhooks and improved Ramp error handling.
- Statistical journals: Added missing archive and recover endpoints and switched to ID-based resource references.
4 new features, 4 improvements, 19 fixes
New features
- Project duplication: Create new projects based on existing ones to speed up project setup for similar work.
- Classification attribute validation: Duplicate classification attribute names are now detected during form entry with inline error messages.
- Integration sync status: Live sync progress indicators now appear in integration settings, matching the experience for data migrations.
- Resizable integration mapping columns: Column widths in integration field mapping tabs can now be adjusted with enforced minimums.
- Billable expenses expansion: Journal entries, vendor credits, purchase orders, and direct expenses now support billable expense tracking.
- Projects related records: View all related transactions and documents directly from project pages for better project oversight.
- Scheduled agent management: Selecting a scheduled agent in the sidebar now opens its configuration drawer directly.
- Custom create button labels: Lists now support customizable labels for create buttons to match specific workflows.
- Fixed asset revaluation dates: Corrected transaction date handling for fixed asset revaluations.
- Checklist status display: Status filters and list rendering now correctly show checklist completion states.
- Save and Post validation feedback: Blocked Save and Post actions now display clear error messages instead of failing silently.
- Archive protection: Bulk archive operations are now properly blocked for recurring records that shouldn’t be archived.
- Paper check templates: Template list now refreshes correctly after bulk delete operations and shows proper response handling.
- Chart hover behavior: Bar charts now handle null data columns properly during mouse hover interactions.
- Company logo aspect ratios: Company logos maintain proper proportions across company branding, company tree, and sidebar displays.
- User link navigation: User links in budget lists now navigate to the correct user detail pages without 404 errors.
- People drawer resolution: User detail drawers open correctly for all users, including those not currently visible in paginated lists.
- Form validation improvements: Whitespace-only values in required custom fields are now properly treated as empty and validation messages have been streamlined.
- Status toggle labels: Active/Inactive toggle labels now update dynamically to reflect the current selection state.
- Selection state management: Bulk action selections are properly cleared after single-item recover operations.
- Filter display consistency: Applied range filters now show active badges in dropdown menus, and account type filter options remain visible in reconciliation views.
- Period locking controls: Year dropdown and control bar remain fixed during horizontal grid scrolling.
- Toast message improvements: Close buttons no longer overlap toast text, and validation error messages display in the correct red color.
- List footer positioning: Pagination summaries now pin to the bottom on pages with short lists.
- Form completion badges: Company and date fields maintain “Incomplete” status when saved as draft, even when validation rules are relaxed.
- Archive controls: Edit controls are now properly hidden for archived checklists.
- Navigation consistency: Record status filter changes now automatically navigate to the appropriate status tab.
13 new features, 5 improvements, 36 fixes
New features
- AI evaluation tools: Added a dedicated AI Evaluation section to the platform, moving these tools out of Organization Management for easier access and improved workflow management.
- Milestone revenue recognition: Introduced Phase 1 of milestone-based revenue recognition with completion flows and drawdown summary views for project-based revenue tracking.
- Billable expenses: Added comprehensive billable expense tracking with customer assignment, project allocation, and markup configuration capabilities.
- General ledger audit columns: Added optional Created By, Last Approved By, and Last Approved Date columns to General Ledger reports for enhanced audit trail visibility.
- Xero financial statement reconciliation: Added support for Profit & Loss and Balance Sheet reconciliation with Xero for streamlined financial statement matching.
- Brex multi-connection support: Enabled multiple Brex connections per organization to support complex banking setups.
- Guided tour integration: Connected onboarding feature chips to their corresponding guided tours for seamless user education experience.
- AI error recovery: Implemented three-tier error classification allowing AI agents to self-correct validation errors instead of terminating conversations.
- Rippling integration: Added OAuth 2.0 authentication support for Rippling payroll integration with connection management and token storage.
- Cash flow drill-down: Added General Ledger drill-down capability for account-backed cash flow statement lines with proper period and account filtering.
- Bank match suggestions: Re-enabled matching suggestions for previously archived bank transactions to prevent permanently stranded transactions.
- Accounts API filtering: Added excluded account types filter to accounts API for more flexible account selection and statistical account blocking.
- Checklist task archiving: Added archived status support for checklist tasks with proper lifecycle management.
- Scheduled AI agents: Enhanced scheduled agent management with improved sort functionality and cadence picker with humanized schedule previews.
- Salesforce field discovery: Enhanced Salesforce integration with automatic field discovery and schema exploration for improved data synchronization.
- VAT return improvements: Enhanced VAT Return reports with proper VAT ID resolution for cross-border transactions and support for custom report saving.
- Project list filtering: Added server-side filtering support for project lists with improved performance and search capabilities.
- Chunked bulk imports: Implemented chunked writing for customer and direct expense bulk imports to improve performance and reliability.
- Revenue recognition search: Fixed search functionality in ARR by Contract report to properly return matching records.
- Amortization schedule controls: Added “Stop amortization schedule going forward” action to provide better control over ongoing amortization processes.
- Change order date validation: Resolved “Please select a date” blocking error for straight-line prorate first/last recognition in obligation modifications.
- Close checklist task management: Fixed issue where “Delete Tasks” button remained available after clicking Reset on Close Checklists Template page.
- Invoice description formatting: Preserved multi-line formatting in invoice description fields that previously rendered as single lines after updates.
- Project date validation: Added proper validation to prevent project creation when Start Date is later than End Date.
- Classification view labels: Fixed generic “records” label to display proper record type names for Customer Deposit, Customer Payment, and Statistical Journal entries.
- Terms list sorting: Implemented proper sorting functionality for the Terms list view.
- Budget archive recovery: Fixed bulk action footer to show “Recover” instead of “Archive” for archived budget records.
- Exchange rate precision: Resolved manual exchange rate field truncation and calculation precision issues on financial statements.
- Balance sheet loading: Fixed timeout issues causing Balance Sheet reports to fail loading.
- Income statement pivot renaming: Resolved issue preventing users from renaming added pivots in Income Statement customization.
- Trial balance summary columns: Fixed rendering of summary columns with empty parent buckets in trial balance reports.
- Page size persistence: Fixed rows-per-page setting updates on list views when staying on the same page.
- Allocation schedule memo field: Preserved memo field values when editing allocation schedules in revenue recognition.
- Report center button priority: Changed Customize button from primary to secondary styling to maintain Save As as the primary action.
- Side navigation scrolling: Removed rubber-band overscroll behavior on application side navigation for improved user experience.
- N+1 query optimization: Resolved slow database queries in transaction monitoring and customer payment endpoints.
- OCR number precision: Fixed OCR-extracted numbers to respect database decimal precision limits preventing bill save failures.
- Trial balance fiscal year logic: Corrected P&L year-to-date calculations and Balance Sheet point-in-time balances for non-standard fiscal years.
- AI benchmark metrics: Fixed AI spending calculations to include direct expenses alongside bills for accurate vendor keyword matching.
- Xero conversion balances: Resolved missing opening balance imports from Xero by including conversion balance journals in migration sync.
- VAT rate type classification: Fixed incorrect “exempt” classification for out-of-scope VAT transactions.
- Migration account hierarchy: Prevented QuickBooks migration pauses by keeping parent accounts when children have transaction activity.
- Close checklist approvers: Fixed inability to add yourself as an approver in close checklist tasks.
- Bulk import filters: Corrected filter status labels and behavior in bulk imports interface.
- Brex vendor payment handling: Fixed vendor payment creation errors for bills that were already settled before import.
- Customer statement ordering: Added missing date ordering to customer statements to ensure consistent display.
- Period lock optimization: Improved bulk archive performance by skipping row locks for status-only updates.
- Report access filtering: Unified company access filters in reports to eliminate duplicate database queries.
- Aging report excluded lines: Fixed “Show Excluded Lines” toggle functionality in AR/AP Aging reports.
- QuickBooks deposit routing: Corrected import routing for deposits to non-bank accounts as journal entries instead of customer deposits.
- Sandbox user permissions: Fixed blank data display for copied users in new sandboxes by resetting company access restrictions.
- Cash flow error handling: Improved error responses for unsupported drill-down requests in custom Cash Flow reports.
- Allocation search functionality: Fixed search by allocation number across all tabs in allocation schedules.
- OpenSearch performance: Enhanced search precision and removed legacy tests for improved query accuracy.
6 new features, 6 improvements, 19 fixes
New features
- Terminate action for amortization schedules: Added a terminate action to amortization schedule readonly views, allowing you to end amortization schedules when needed.
- Enhanced HMRC integration details: The HMRC integration now displays more comprehensive details about VAT periods and obligations, and properly handles VAT returns that were pulled from HMRC but not managed by DualEntry.
- Milestone revenue recognition setup: New milestone-based revenue recognition configuration with support for fixed amounts, percentages, and computed quantity-rate calculations (behind feature flag).
- ClickHouse OLAP management: Added management interface for ClickHouse OLAP operations with timeout handling for complex queries.
- Report request cancellation: Report requests are now properly cancelled when superseded by new requests, preventing database overload and UI freezing.
- Milestone completion workflows: Added dedicated milestone management page with completion tracking and status updates for milestone-based revenue recognition contracts.
- Multiple email addresses on customer records: Customer records now accept multiple email addresses separated by commas or semicolons. When sending invoices, receipts, or statements, the first email becomes the primary recipient and additional emails are automatically added as CC recipients.
- Bulk import record type filtering: The bulk import list now shows all available record types in the filter dropdown, including financial transactions.
- Terms list column sorting: Payment terms list now supports sorting by name, type, days, and status columns.
- Design system token updates: Updated color palette and spacing tokens across the interface for improved visual consistency.
- Multiple Brex connections: The Brex integration now supports connecting multiple accounts with improved error handling for duplicate connections.
- Project date validation and sorting: Enhanced project management with improved date field validation and sorting capabilities.
- Page display issues resolved: Fixed stray characters appearing on various pages including integration mapping screens and permissions-gated layouts.
- Custom report changes now reflect immediately: Saving changes to custom reports no longer requires a manual page refresh to see updates in the report table.
- Inactive accounts excluded from bank transfers: Bank transfer sending and receiving account dropdowns now only show active accounts, with warnings when editing transfers that reference deactivated accounts.
- Invoice description formatting preserved: Multi-line text in invoice description fields now maintains proper formatting when saved.
- Workflow list updates immediately: Creating or updating workflows now refreshes the list view immediately to show the latest descriptions.
- Classification count accuracy: The classification page footer now shows the correct total count that matches visible rows, accounting for parent-child relationships.
- User role edit permissions: Fixed issue where edit options were shown to users without proper edit permissions.
- Fixed asset customer/vendor visibility: Depreciation GL impact views now properly display associated customer and vendor information from the underlying fixed asset.
- Formula row updates in report builder: Custom report builder now properly reflects name and parent changes for formula rows without requiring a refresh.
- Manual exchange rate field display: Fixed display issues with manual exchange rate fields on financial records in multi-currency setups.
- Customer row inactive status styling: Inactive customer rows now display with proper styling to distinguish them from active records.
- Revenue recognition obligation date validation: Removed incorrect validation that was blocking legitimate change order modifications.
- Sidebar submenu alignment: Fixed alignment issues with sidebar submenu items for improved navigation.
- Checklist template task selection: Reset button now properly clears selected tasks and hides delete button after resetting checklist templates.
- Organization management date filtering: Date range picker in Activity, Exports, and Benchmark tabs now properly filters results.
- ARR by Contract search functionality: Search now returns correct matches for customer and contract names in the ARR by Contract report.
- Budget archive and recovery actions: Bulk actions on archived budgets tab now correctly show Recover option instead of Archive.
- Custom report pivot renaming: Added pivot dimensions in Income Statement customize view can now be renamed through the row options menu.
- Classification record type labels: Fixed plural labels for customer deposits, payments, and statistical journals in classification views.
5 new features, 6 improvements, 14 fixes
New features
- Statistical journal balances: Added support for statistical balances with configurable duplicate posting behavior.
- Budget balance sheet report: New Budget Balance Sheet report available in the Report Center for budget vs actual analysis.
- General ledger audit columns: Added optional “Created By”, “Last Approved By”, and “Last Approved Date” columns to General Ledger reports for transaction auditing.
- Milestone revenue recognition: Enhanced milestone-driven billing and revenue recognition with edit and cancel capabilities for milestone change orders.
- Scheduled reporting jobs: Enabled automated report scheduling and queue monitoring for Django reporting services.
- Batch bill imports: Large bill imports now run significantly faster through batch processing while maintaining the same import accuracy.
- Journal entry line pagination: V2 API now supports pagination for journal entry lines to improve performance with large datasets.
- Bill line pagination: V2 API now supports pagination for bill lines, splitting items and expenses for better handling of large bills.
- Improved migration error messages: Account references in migration errors are now searchable and include actionable details like account names and mapping information.
- Contract batch filtering: Added has_batch filter to subledger endpoint for better contract management.
- AI Copilot knowledge base routing: Improved routing of product behavior questions to the knowledge base for more accurate, cited responses.
- Enhanced VAT return reporting: VAT Return reports now properly handle reverse charge transactions and maintain consistent sign conventions.
- AI Copilot message recovery: Fixed chat messages that could hang in pending state forever when MCP tool loader became unresponsive.
- Organization activity date filters: Fixed date filters in Activity, Exports, and Benchmark tabs to properly apply whole-day inclusive filtering.
- VAT return sign convention: Fixed VAT Amount sign convention to properly mirror Amount Before Tax for accurate net calculations.
- Xero account transaction counts: Fixed account mapping display showing 0 transactions for all Xero accounts due to account code resolution issues.
- QuickBooks statement upload: Fixed account number prefix stripping in QuickBooks statement uploads so rows properly match the account crosswalk.
- GST tax calculation: Reverted GST tax amount override behavior for Receipt/Override methods to prevent base currency mismatches.
- Cross-environment organization cloning: Fixed evaluation snapshot restoration across different environments by properly handling foreign key relationships.
- Remittance allocation: Fixed customer payment allocation to honor invoice references even when invoice reference information doesn’t match exactly.
- Report package scheduling: Fixed stale fire window configuration reading to honor the actual configured timeout values.
- Brex vendor name normalization: Fixed export errors caused by whitespace in vendor names during Brex sync operations.
- Integration sync task status: Fixed sync tasks to remain green when encountering handled terminal errors.
- Celery consumer reliability: Added retry logic for empty consumer replies during worker cordon operations to prevent flaky network issues from aborting deployments.
- Fivetran missing table handling: Improved error handling when expected tables are missing during Fivetran sync operations.
11 new features, 5 improvements, 19 fixes
New features
- Copilot report display: Reports generated by AI Copilot now properly resize when the Copilot panel opens or closes, ensuring optimal viewing experience.
- Statistical journal management: Added popover details for accounts and companies columns in statistical journal lists, showing comprehensive record information on click.
- Customer linking for amortizations: Amortization and prepaid asset records can now be linked to customers in addition to vendors, with full form, list, and detail view support.
- Generate invoices from billable expenses: New modal allows generating invoices directly from billable expense records with multi-currency grouping and cross-company support.
- Enhanced aging reports: Added “Show Excluded Lines” toggle to AR/AP aging reports to display transactions deliberately excluded from aging calculations.
- Cross-tab data synchronization: React Query cache now syncs across browser tabs, ensuring consistent data display when working in multiple tabs.
- Ramp integration enhancements: Added fallback settings to auto-create vendors when Ramp card merchants have no matching vendor, plus improved classification activation/deactivation controls.
- Future invoice date limits: Increased maximum future invoice date setting from current limits to 25 years for long-term contract management.
- HMRC VAT return sync: New functionality to pull and sync VAT returns from HMRC, indicating whether returns were filed externally and verifying if computed numbers match HMRC records.
- Revenue recognition batch filtering: Added new filters on revenue recognition batch preview including contract recognition mode filter for enhanced data visibility.
- Amortization future stopping: Enhanced amortization schedule management allows stopping schedules going forward when they have posted entries in locked periods by archiving only future GL impact.
- Budget report improvements: Budget vs Actual reports now clearly show which company owns the budget in filter chips to avoid confusion when budgets are applied across companies.
- Company-specific date formatting: Invoices, purchase orders, customer payment receipts, and statements now use each company’s configured date format instead of organization defaults.
- Subledger archive functionality: Revenue recognition subledger batches can now be archived for better data management and organization.
- Enhanced project management: Projects module now fully integrated with backend services and features updated design with improved functionality.
- Contract milestone workflows: Added edit and cancellation milestone workflows for contract management with improved tracking and approval processes.
- AI bank match loading: Resolved issue where AI bank matching would get stuck in loading state indefinitely.
- Bulk import display: Removed stray semicolon characters appearing below pagination on bulk import pages.
- Budget report controls: Fixed unresponsive Budget and Budget Group selector buttons on Income Statement Budget reports.
- Close checklist templates: New close checklist templates now appear immediately in the templates list without requiring page refresh.
- Period locking interface: Period lock status updates are now reflected immediately in the interface without manual refresh required.
- Journal entry editing: Save & Post button is now properly disabled when editing journal entries in locked periods.
- Bulk classification modal: Fixed issue where bulk classification edit modal would reopen immediately after being closed with ESC key.
- Sign out process: Users can now successfully sign out and are properly redirected to login instead of remaining on dashboard.
- Amortization schedule recovery: Recover button no longer remains stuck in loading state after successful recovery operations.
- Contract template editing: “Edit Customer” link in contract templates now responds correctly and opens the appropriate customer record.
- Report loading indicators: Loading indicators for slow-generating reports now persist until report completion instead of disappearing prematurely.
- Statistical journal visibility: Draft amortization schedules are now properly visible in listing pages while remaining searchable by ID.
- Filter stability: Resolved crashes when filter options were undefined, particularly during session expiry scenarios.
- Currency display optimization: Eliminated duplicate currency lookup requests on record detail pages for improved performance.
- Copilot automation filtering: Stopped E2E automation health-check sessions from posting to Copilot Slack feed channels.
- Bank match error handling: Fixed bank match errors when create-and-match operations run on excluded financial transactions.
- Ramp bill payment sync: Resolved issue where Ramp bills synced to external systems still appeared in accounting tab after payment processing.
- Custom report formula positioning: Fixed issue where indented formula rows would move out of place when Custom Report Builder reports are run.
- Bulk bill update processing: Improved performance and stability of bulk bill updates by processing in fixed-size chunks to prevent database operation conflicts.
9 new features, 6 improvements, 17 fixes
New features
- Amortization termination: Added ability to terminate amortization schedules early with new endpoint and user interface.
- Bulk item updates: Introduced batch update capabilities for items, allowing multiple items to be updated at once.
- Company-level date format settings: Added date format configuration at the company level with GET/PUT support, allowing organizations to set different date formats per company.
- Company approval workflows: Implemented approval workflows for company creation and management with configurable approval requirements.
- Statistical journal company logos: Added company logo URL resolution to statistical journal API responses with signed S3 URLs.
- Stripe payment method requests: Enhanced Stripe integration to resolve recipient email addresses for “Request Payment Method” workflows, supporting both card and ACH payment methods.
- Ramp vendor auto-creation: Added fallback setting to automatically create vendors when card merchants have no matching vendor record.
- Multi-parent company filtering: Enhanced company list API to support filtering by multiple parent company IDs simultaneously.
- Deploy worker protection: Implemented cordon and drain functionality for migrations and integrations workers during deployments to prevent job interruption.
- Revenue recognition batch company names: Added company name field to revenue recognition batch outputs for better identification and reporting.
- Fixed assets customer/vendor assignment: Enhanced depreciation records to include customer or vendor associations for improved tracking.
- Localized report date formats: PDF, CSV, and XLSX report exports now respect organization and company date format preferences.
- Enhanced VAT return reporting: Comprehensive improvements to VAT Return detail view including VAT ID, amount before tax, VAT amount, reverse charge flags, reference numbers, memos, and consolidated FX rates.
- Bank match partial rule metrics: Implemented organization-wide tracking of partial rule matches as a periodic metric for better visibility into bank matching performance.
- QuickBooks sync time distribution: Staggered QuickBooks connector sync times across all 24 hours to improve On-Time Delivery and reduce system load.
- Bank match “Create & Match” errors: Resolved issue where “Create & Match” failed with “This transaction already has a suggestion” error when no suggested transaction was visible.
- AI bank match period restrictions: Fixed AI Bank Match agent to only create draft transactions in open periods instead of closed periods.
- Multi-currency journal entry balance: Fixed base currency balance mismatch when editing journal entry line currency and amounts, properly recalculating Realized Gain/Loss.
- Sales tax recalculation currency mismatch: Resolved base currency balance issues for Float Receipt and Override tax methods in multi-currency scenarios.
- User role removal reconciliation: Fixed “Only pending users can be removed” error by reconciling WorkOS membership status before user removal operations.
- Privilege escalation prevention: Closed security vulnerability where users with “User Role” permissions could grant themselves unlimited permissions.
- S3 presigned URL downloads: Fixed broken file downloads in local development by forcing SigV4 signing for S3 client factory.
- VAT report data accuracy: Fixed multiple issues in VAT Return report detail view including blank VAT IDs, amounts before tax, VAT amounts, reverse charge flags, reference numbers, memos, and incorrect totals.
- Migration account mapping errors: Resolved “ClassificationLine matching query does not exist” and “Xero Default Income account is not mapped” errors in data migrations.
- Vendor credit duplication: Fixed Bill.com integration to properly differentiate vendor credits by reference numbers when considering duplicates.
- Stripe customer import collisions: Enhanced Stripe customer import to handle name collisions by reusing existing customers instead of failing.
- Template download performance: Fixed performance issues with direct expense update template downloads by removing unnecessary database ordering.
- Copilot artifact filtering: Resolved issue where flat_table artifact filters were silently ignored by implementing in-memory filtering for query-less artifacts.
- Prepaid amortization Excel export: Fixed Excel export to replace internal IDs with meaningful values and added amortized amount and remaining balance columns.
- Draft transaction archiving: Enabled archiving of draft transactions stuck in closed periods while maintaining period lock protections for posted transactions.
- Report package cover generation: Fixed organization branding lookup errors and incorrect organization names on report covers.
- Integration record processing: Resolved various integration errors including Stripe customer blank display names and transactional record creation failures.
1 improvement, 1 fix
Improvements
- Classification export improvements: The classification export now includes all filtered records across all pages instead of only the current page view, matching the behavior of other exports like chart of accounts and invoices.
- Period lock status updates: Fixed an issue where period lock icons and status indicators didn’t update immediately after locking or unlocking periods, requiring a manual page refresh to see changes.
5 new features, 3 improvements, 6 fixes
New features
- Xero OAuth migration: Streamlined Xero connection process with DualEntry-managed authentication. Customers can now authorize Xero and select their organization without manually entering Client ID and Secret credentials.
- Enhanced scheduled agent cadences: Added support for weekly, monthly, quarterly, and end-of-month schedules with timezone support. Scheduled agents can now run at specific times in your local timezone rather than UTC.
- Statistical journal duplication: Added duplicate action to statistical journal entries. Create new entries by duplicating existing ones with pre-filled data while preserving the ability to modify before saving.
- Amortization draft management: Draft tab now available in the amortizations list, allowing you to view and manage amortization entries before they are finalized.
- Integration tab customization: Added ability to reorder, show, hide, and drag-and-drop integration tabs for a customized workspace experience.
- Revenue recognition batches in approvals: Revenue recognition batches now appear in the approval workflow inbox, allowing teams to review and approve revenue batches through the standard approval process.
- Report loading improvements: Enhanced loading indicators for reports that remain visible while slow reports are still generating, providing better visibility into report status.
- Bulk classification editing: Classification editor now appears inline in the bulk edit modal for journal entries, making it easier to update classifications across multiple records without additional navigation.
- Import template performance: Resolved slow template generation for direct expense imports in organizations with large datasets. Template downloads now complete in seconds instead of minutes.
- Account import reliability: Fixed Data Sync failures when importing from Xero or QuickBooks organizations with no items. Default accounts are now properly created during the account import phase.
- Report export errors: Fixed export failures for single-view reports like ARR by Contract and 1099 Taxable Report by Vendor that were incorrectly rejecting summary view requests.
- Classification mapping stability: Eliminated error notifications when QuickBooks and Ramp integrations encounter stale classification mappings. These cases are now handled gracefully with actionable error messages in the data sync interface.
- Reporting performance: Improved aging report performance for large organizations by optimizing payment aggregation queries. Dashboard widgets now load significantly faster.
- Chart of Accounts export: Fixed export functionality by removing pagination parameters that were incorrectly included in export filters.
19 new features, 5 improvements, 30 fixes
New features
- Statistical journal drafts: Added ability to save statistical journal entries as drafts and attach supporting documents.
- Statistical journal line items: Added bulk company editing for statistical journal line items.
- Fixed assets overview columns: Added Asset Account, Expense Account, and Accumulation Account columns showing account numbers and names.
- Fixed assets customer association: Added optional customer field to link fixed assets with customer records.
- HMRC fraud prevention: Added HMRC fraud prevention header support for UK tax compliance.
- Bill.com integration: Added vendor credit write-off account setting for Bill.com integrations.
- Ramp integration: Added entity custom field mapping settings for Ramp integrations.
- Statistical accounts management: Added ability to create, edit, and view statistical accounts with proper number assignment.
- Migration workflows: Added run action, run info column, and tool info tab for migration workflow management.
- Allocation schedules: Added support for intercompany customers and vendors in allocation schedule dropdowns.
- Billable expenses reporting: Added new billable expenses report with filtering and grouping options.
- QuickBooks reconciliation: Added automated P&L and Balance Sheet pulling from QuickBooks API and Cash Flow report support.
- Classifications export: Added server-side export support for classifications across all pages.
- Prepaid amortization export: Enhanced Excel export with amortized amount and remaining balance columns, replacing internal IDs with readable names.
- Fixed asset customer reporting: Added customer column to Fixed Asset Register report for tracking asset-customer relationships.
- Milestone revenue recognition: Added Phase 1 recognition engine with drawdown support for milestone-based contracts.
- Benchmark job filtering: Added date filtering to benchmark jobs list endpoint for Organization Management.
- Brex receipt attachments: Added automatic download and attachment of receipts for Brex card expenses, bills, and payments in OAuth mode.
- Snowflake integration description: Updated integration catalog to correctly describe Snowflake as exporting data out of DualEntry.
- Chart of Accounts export: Export now includes all filtered accounts across pages instead of only the current page view.
- AI Copilot performance: Improved artifact loading performance by reducing redundant database queries.
- Data sync filtering: Added sync date and transaction date filters to integration data sync tabs with improved search functionality.
- Keyboard shortcuts: Improved keyboard shortcut system with context-aware and scoped functionality.
- Stripe aggregation tools: Added simplified interface for editing and viewing Stripe integration record aggregations.
- Search functionality: Fixed search filters in Organization Management Activity and Exports tabs to return proper results.
- Account selection display: Fixed expense line account selectors to consistently show account number and name after bulk updates.
- Statistical accounts: Fixed account number assignment for statistical accounts to prevent conflicts with asset accounts.
- Classification requirements: Fixed optional classifications being incorrectly marked as required on Fixed Assets forms.
- Bank match auto-scroll: Fixed auto-matched bank transactions to properly scroll into view.
- Journal entry account labels: Fixed account selector in journal entries to display formatted account labels correctly.
- Tab switching performance: Fixed performance warnings when switching between tabs and filters on project lists.
- AI Copilot layout: Fixed AI Copilot sidepanel from incorrectly adjusting text and spacing on main page.
- Skills menu display: Fixed “Add Skills” and “Manage Skills” links visibility in normal screen size.
- Allocation tab navigation: Fixed active tab indicator when switching to Activity tab in allocations.
- Asset disposal validation: Fixed transaction date validation error preventing asset disposal creation.
- Contract approval navigation: Fixed “Pending for Approval” filter to properly navigate to Approval tab.
- User role assignment: Fixed select/deselect all functionality for company groupings in user role assignment.
- Bank match rules: Fixed missing payee error that blocked bank match rule execution.
- Chart of Accounts pagination: Fixed broken pagination in Import Chart of Accounts drawer.
- Data sync search: Fixed search functionality in Account and Transaction Type filters on Data Sync tabs.
- Bulk import error handling: Fixed parsing errors in bulk imports to show clear error messages instead of blank values.
- General Ledger pivot clearing: Fixed issue where clearing pivot settings on General Ledger Details report returned no data.
- Custom report Net Income recovery: Fixed Net Income field becoming unrecoverable after clearing Balance Sheet fields in Custom Report Builder.
- Widget cache invalidation: Fixed Redis cache invalidation issues by offloading to Celery tasks.
- Custom report Excel export: Fixed Excel exports to include the report name in the filename.
- AI Copilot error messages: Fixed empty error bubbles by ensuring human-readable error messages appear in chat interface.
- Integration record locking: Fixed accidental row locks on parent integration when locking integration records during QuickBooks imports.
- Paper check template deletion: Fixed LocalProtocolError when deleting paper check templates by returning proper empty response.
- Ramp sync task forwarding: Fixed TypeError in Ramp integration sync by properly forwarding task IDs through sync operations.
- Benchmark job concurrency: Fixed race condition where simultaneous benchmark requests could create duplicate jobs.
- Organization copying user reconciliation: Fixed issue where users couldn’t be invited to organizations copied from existing ones.
- Chart of Accounts export filtering: Fixed single account selection in Chart of Accounts export to properly cast account IDs.
- Bank match error handling: Fixed Auto tab in bank matching to surface fetch errors instead of showing empty state when suggestions fail to load.
- Client performance: Improved Sentry initialization to load lazily and reduce client bundle load time.
9 new features, 5 improvements, 11 fixes
New features
- QuickBooks statement reconciliation: Statement reconciler can now pull P&L, Balance Sheet, and AR/AP aging reports directly from QuickBooks Online API instead of requiring manual uploads.
- Contract bulk import: Added support for importing contracts through Bulk Import V2, streamlining contract data migration workflows.
- Fixed asset export enhancements: Added Amortized Amount and Remaining Balance columns to fixed asset exports with more readable column labels.
- Revenue recognition milestone foundation: Added milestone definitions data model and event-driven semantics as the foundation for milestone-based revenue recognition.
- Statistical accounts model: Added draft state handling and attachment support for statistical journal entries.
- Future invoice date extension: Increased maximum future invoice date setting from current limit to 25 years to support long-term billing scenarios.
- Amortization customer linking: Extended amortization and prepaid asset import to support linking to customers in addition to vendors.
- Integration observability: Separated integration-related errors into a dedicated Sentry project for better issue tracking and alerting.
- Data sync date filters: Added Sync Date and Transaction Date filter options in the Data Sync tab for more precise filtering of integration history.
- AI Copilot report data: Migrated AI Copilot’s report analysis to use the same report engine as the frontend, ensuring consistent figures and improved accuracy when answering questions about financial reports.
- HMRC fraud prevention headers: Enhanced UK tax integration with improved fraud prevention headers and IP consistency validation.
- Ramp entity field sync: Automatically push DualEntry companies to Ramp as a “DualEntry Entity” accounting field for improved intercompany billing classification.
- Brex account security: Added validation to prevent switching to different Brex accounts during reconnection and improved webhook error handling.
- Performance optimizations: Implemented multiple query optimizations across reports, organization exports, and API endpoints to improve response times.
- AI Copilot stability: Fixed chat crashes when database connections dropped mid-stream by adding connection health checks to the Postgres checkpointer pool.
- AI Copilot citations: Resolved issue where citation numbers were not available in AI Copilot responses.
- HST tax posting: Fixed HST posting to wrong liability accounts by using tax rate region instead of company region for account routing.
- AR aging reconciliation: Resolved discrepancy where AR Aging reports did not tie to General Ledger due to inconsistent journal entry postings to AR control accounts.
- Compound GST rounding: Fixed currency balance mismatches for Canadian compound GST+PST rates by implementing per-component rounding instead of combined-rate rounding.
- Bill.com vendor credits: Resolved issue where vendor credits were not syncing from Bill.com to DualEntry AP reports.
- Xero connection errors: Fixed HTTP 500 errors that occurred when pressing Save and Test after Xero migration.
- Vendor bulk import addresses: Fixed issue where structured vendor addresses were being dropped during bulk import V2 processing.
- Approval workflow logic: Corrected re-approval triggers so classification changes don’t incorrectly trigger re-approval and amount reductions properly trigger re-approval when required.
- Ramp JSON parsing: Added automatic page size reduction when Ramp returns truncated JSON responses during transaction sync.
- Multiple N+1 query fixes: Resolved several database query performance issues across organization reindexing, integration sync, and bank matching processes.
2 new features, 1 improvement, 2 fixes
New features
- Address validation: Added validation for address fields to ensure accuracy and completeness when entering vendor and customer information.
- Attachment override capability: Added ability to override existing attachments when uploading new files to records.
- Improved classifications performance: Classifications now load faster with pagination support for better performance when working with large datasets.
- Report menu permissions: Report menu items now properly hide when users lack the required permissions to access them.
- Xero migration invoice sync: Fixed issue where re-syncing after mapping corrections did not update general ledger accounts on previously paid invoices.
6 new features, 9 improvements, 18 fixes
New features
- Documentation access: Added a direct “Docs” link to the main navigation header for quick access to help resources.
- Billable expenses tracking: New billable expenses list page for tracking and managing expense items that can be billed to customers.
- Statistical journal entries: Added a new statistical journal section under Accounting > Transactions for non-monetary journal entry tracking.
- Enhanced reporting permissions: Added role-based access controls to aging reports and financial statements endpoints to ensure proper security compliance.
- Xero migration improvements: Added support for importing Xero SPEND-OVERPAYMENT bank transactions as vendor credits and ARCREDITPAYMENT payments as customer refunds.
- Bill.com vendor credit sync: Bill.com “write off balance” vendor credits now sync properly with configurable write-off account fallback for account-less credit lines.
- Sandbox environment redesign: Moved the expiry countdown from the banner into a compact topbar pill showing time remaining. The full banner now only appears for eligible migrations with a clear “Migrate now” action.
- Allocation schedule improvements: Customer and vendor dropdowns now show all active customers and vendors, not just intercompany records for the destination entity.
- User date format support: All date displays across reports, transactions, and data tables now respect your selected date format preference instead of showing a hardcoded MM/DD/YYYY format.
- Statistical accounts support: Account creation and editing now supports statistical account types with appropriate field visibility and configuration options.
- Fixed asset import enhancements: Fixed asset bulk imports now support asset class field mapping and allow linking assets to customers in addition to vendors.
- V2 invoice line pagination: Public API V2 now supports pagination for invoice lines to improve performance when working with large invoices.
- Report compression: Large report exports now use GZip compression to reduce transfer size and improve performance for oversized reporting payloads.
- Multi-year statement reconciliation: Bank statement reconciliation now properly handles multi-year balance sheet uploads with improved period matching.
- Enhanced fraud prevention: HMRC integrations now include required fraud prevention headers for compliance with UK tax authority requirements.
- Asset disposal creation: Fixed error when creating asset disposals where transaction date validation was failing due to empty date values.
- Chart of accounts totals: Account totals in the footer now show the correct total number of accounts instead of displaying only root account counts.
- Allocation schedule activation: Fixed issue where activating inactive allocation schedules caused records to disappear from all tabs instead of moving to the active view.
- Tab navigation indicators: Active tab underlines now stay on the selected tab when switching between tabs on detail pages.
- AI copilot menu positioning: Slash command menu in the AI copilot no longer gets cut off at browser window edges.
- Layout stability: Fixed content width conflicts when both the navigation sidebar and AI copilot panel are open on narrow screens.
- Contract approval filters: Selecting approval status filters on the Contracts overview now properly navigates to the For Approval tab where those records are displayed.
- Migration workflow validation: Workflow nodes are now validated before saving to prevent configuration errors.
- Org Management search: Fixed search functionality in Activity and Exports tabs that was returning no filtered results.
- GL report customer/vendor columns: Fixed General Ledger report where Customer/Vendor Line Item column was showing record-level parties instead of line-level parties.
- Report detail projections: Fixed Income Statement and Balance Sheet detail reports where Customer/Vendor Line Item columns were rendering blank.
- Bank match prepayment suggestions: Disabled automatic vendor/customer prepayment creation for unmatched transactions to reduce false positive suggestions.
- Brex integration reliability: Fixed OAuth token refresh failures that were causing Brex integrations to disconnect and disappear from the UI.
- QBO migration account updates: Fixed issue where re-sync on QBO migrations could not update GL accounts on paid invoices.
- Bulk import reversal handling: Fixed bulk journal entry imports to not fail entirely when reversal entries encounter errors if partial failure avoidance is disabled.
- Reconciliation performance: Optimized reconciliation endpoint to remove N+1 queries and improve batch deletion performance.
- Sandbox export completeness: Fixed sandbox exports that were silently omitting line-item rows due to foreign key traversal issues.
- Public API rate limiting: Removed redundant per-worker rate limits in favor of existing Redis-based rate limiting solution.
9 new features, 3 improvements, 16 fixes
New features
- Brex transaction validation: Implemented pre-import validation for Brex accounting records to prevent transactions with missing GL account mappings or required classifications from being exported, ensuring data quality.
- QuickBooks OAuth persistence: Enhanced QuickBooks integration by persisting OAuth credentials at finalization, providing foundation for direct API access.
- Deel payslip attachments: Added automatic fetching and attachment of payslip PDFs to Deel journal entries for improved record keeping.
- Fixed assets approval workflow: Approval workflows for fixed assets are now fully enabled across all organizations, providing consistent approval processes for asset transactions.
- HMRC VAT return submission: Introduced frontend interface for submitting VAT returns directly to HMRC, streamlining UK tax compliance workflows.
- Customer payment receipts: Added receipt generation for customer payments to provide documentation for payment transactions.
- Project management with customer association: Created Project entity with customer linking and full CRUD functionality for project-based accounting.
- Clickable attachments in approvals: Made attachment links clickable within approval drawers for easier document review during approval processes.
- Stripe customer payment methods: Added support for managing customer payment methods and charging customers through Stripe integration.
- Chart of Accounts tree view: Added hierarchical tree endpoint for Chart of Accounts, enabling improved navigation and organization of account structures.
- Chart of Accounts pagination: Added pagination controls to Chart of Accounts pages to improve performance when managing large account hierarchies.
- Report display scaling: Reports now support displaying numbers in thousands or millions format for improved readability of large financial figures.
- Balance Sheet report performance: Resolved timeout issues where Balance Sheet reports were taking 30+ seconds to load by implementing performance optimizations that reduce processing time by approximately 47%.
- AI chat error handling: Fixed issue where internal system errors were being displayed directly in AI chat responses, now showing user-friendly error messages instead.
- Fivetran connection stability: Fixed HTTP 500 errors after clicking Save and Test on Xero connections following a migration.
- Migration interruption recovery: Fixed an issue where data syncs could be interrupted and migrations left stuck. Syncs now recover automatically.
- QuickBooks migration flow: Fixed one-click QuickBooks migrations getting stuck on “Not synced” status; the initial sync now starts automatically.
- Chart of Accounts import badge: Fixed persistent “in progress” import badge that remained lit when uploads were never started by excluding abandoned file uploads from the count.
- Asset disposal transaction dates: Resolved validation errors when creating asset disposals by properly handling empty transaction date fields.
- Allocation schedule validation: Fixed issue allowing allocation schedules to be created with percentages totaling less than 100% for single line items.
- Reconciliation transaction type filtering: Fixed search functionality and removed duplicate entries in transaction type filters on reconciliation history pages.
- Account mapping search filters: Resolved issues with Xero account type filtering where search wouldn’t narrow results and Revenue option was missing.
- Data sync pagination: Fixed pagination state being incorrectly shared across different data sync tabs, preventing proper navigation.
- People invite company selection: Stopped company pre-selection from automatically re-selecting all options after manual deselection during user invites.
- Import history drawer isolation: Fixed pagination and filter state conflicts between Chart of Accounts import history drawers.
- Classification pagination: Added missing pagination controls to classification list page footers.
- User search in organization management: Fixed user search functionality in Add Existing User modal that was failing to find users beyond the first loaded page.
- Bank match rule preview warning: Fixed error handling in bank match rule preview to display user-friendly warning messages when payee matching failures occur.
11 new features, 9 improvements, 15 fixes
New features
- Projects management: Added new list, details, and edit pages for managing project records across your organization.
- Filter search enhancement: You can now search within static filter options across the platform, making it easier to find specific filter criteria in long lists.
- Revenue recognition batch posting: Added a new subledger batch posting page for revenue recognition workflows (available with feature flag).
- HMRC VAT return submission: Added frontend interface for HMRC integration VAT return submissions for UK entities.
- HubSpot API rate limiting: Added intelligent rate limiting for HubSpot prospect onboarding calls to prevent API throttling and improve sync reliability.
- Public API draft journal entries: You can now update draft journal entries via the public API for better programmatic workflow support.
- Statistical accounts: Added initial model and API support for statistical accounts used in financial reporting and analysis.
- Chart of Accounts hierarchical endpoint: New API endpoint provides the Chart of Accounts as a nested tree structure for better integration support.
- Aging report excluded lines: Added option to show journal entry lines excluded from aging calculations, providing complete transaction visibility.
- Consolidated rates matrix: New endpoint provides consolidated exchange rates in a matrix format to handle large datasets more efficiently.
- Xero deep-links for journals and assets: Added support for deep-linking to manual journals and fixed assets in Xero from the Data Sync interface.
- AI copilot audit visibility: The AI copilot now appears as its own actor in audit trails, making it clear when it performed automated actions.
- Chart of Accounts pagination: Added pagination to the Chart of Accounts page to improve performance when working with large account structures.
- Custom reports in sidebar: Custom reports now appear in the Report Center sidebar menu for quick access to your personalized reporting.
- Error screen improvements: Migration error pages now retain the app navigation sidebar and provide clearer recovery options, with a Refresh button that actually reloads the page.
- Custom report row visibility: You can now hide rows in custom reports without affecting calculations or subtotals, preserving report accuracy while improving readability.
- Address validation via Avalara: Switched address validation to use the Avalara service for improved accuracy and compliance.
- Classifications filtering: Added filtering by required company IDs on the classifications endpoint for better multi-entity support.
- Archive audit trail: Archive and Replace actions from integrations now appear in transaction audit trails, showing when records were archived and which integration performed the action.
- QuickBooks direct OAuth: Benchmark onboarding now uses the direct Intuit OAuth flow instead of the Fivetran hosted connection for improved user experience.
- Approval drawer attachments: Attachment links in approval drawers are now clickable and properly functional.
- Allocation schedule validation: Percentage-type allocation schedules now require the total allocation percentage to equal exactly 100% before saving.
- Payment receipt date format: Customer payment receipts now use the organization’s date format setting instead of individual user preferences for consistency.
- Integration tab navigation: Fixed page reset behavior when switching tabs on the integrations page for better navigation experience.
- AI copilot budget queries: Fixed budget vs actual reporting tool to properly retrieve and display both budgeted and actual revenue figures.
- Income Statement detail pivoting: Fixed subtotal calculations in Income Statement Detail reports when pivoting by classifications to show section totals instead of grand totals.
- Report export crashes: XLSX report exports no longer crash when encountering illegal XML control characters in cell values.
- Chart of Accounts cycles: Added protection against infinite loops when account parent relationships contain cycles.
- Named report rendering: Fixed rendering issues with named reports to ensure proper display and functionality.
- Stripe contract archival: Eliminated validation errors when archiving active Stripe contracts by properly handling end date requirements.
- Performance test stability: Improved reliability of performance testing tools in the CI pipeline.
- API endpoint naming: Standardized report export API endpoints to use underscores for consistency.
- Organization cloning: Fixed duplicate key errors when cloning organizations with pre-existing admin roles.
- Search record queries: Eliminated N+1 database queries in record search operations for better performance.
- Contract detail queries: Optimized contract detail retrieval by prefetching related collections to reduce database load.
11 new features, 12 improvements, 29 fixes
New features
- Bulk account assignment: You can now select multiple bill line items and assign the same account to all of them at once, streamlining account coding workflows.
- Revenue recognition enhancements: Added new Revenue Recognition Batch list and detail pages for tracking recognition batches (currently in preview).
- Report shortcuts: Added keyboard shortcuts for common report actions like opening date filters (Shift+D) and toggling fullscreen mode (Ctrl+Shift+M).
- Revenue recognition subledger integration: Added support for revenue subledger lines and recognition engine posting for contract-based revenue tracking.
- HMRC VAT return submission: Added comprehensive VAT return functionality including obligation fetching, form calculation and mapping, and submission to HMRC with receipt tracking.
- Non-US Avalara tax support: Enhanced Avalara integration to support non-US nexus matching, company addresses, and VAT identity fields for international tax compliance.
- Stripe charges and refunds integration: Added comprehensive Stripe charge and refund reconciliation with automatic GL posting capabilities.
- Chart of Accounts approval workflows: Introduced approval workflows for Chart of Accounts with draft account filtering throughout the platform.
- Financial account totals API: Added new endpoint for aggregated financial account summaries to support improved dashboard performance.
- Customer credit filtering: Added cash sale ID filtering to customer credits API for more precise related record queries.
- Multiple Ramp connection support: You can now connect multiple Ramp integrations simultaneously with explicit create operations and unique naming requirements.
- Report number formatting: Reports now display amounts in thousands (K) or millions (M) with a new Number Scale setting for easier readability on large reports. The setting defaults to “None” to preserve existing layouts.
- Recurring invoice amounts: The Amount column in Recurring Invoices now shows the actual discounted amount instead of the pre-discount total, accurately reflecting applied discounts.
- Custom field activity logging: Activity trails now only show custom fields that actually changed values instead of listing all custom fields as updated.
- Date format consistency: Date inputs throughout the platform now respect your preferred date format setting, including form fields, reports, and related records sections.
- Fixed asset performance: Improved responsiveness when entering values rapidly in fixed asset amount fields and other money input fields.
- Bank match efficiency: Streamlined bank matching interface with improved selection handling and reduced data loading for better performance.
- Classifications pagination: The Classifications list now includes pagination controls with records-per-page selection and page navigation.
- MCP contract detail optimization: Improved performance when retrieving contract details through MCP for contracts with large invoice histories.
- AI copilot performance improvements: Enhanced chat response delivery through improved chunk streaming and reduced connection interruptions.
- Brex transaction categorization: Data Sync now displays granular Brex transaction types (Card Transaction, Bill Payment, Reimbursement) instead of generic “Accounting record” labels.
- Period locks company search: Enhanced period locks API with company-joined search and pagination capabilities for better navigation.
- Account label enhancement: Bank matching now displays full account labels without requiring frontend tree construction for better performance.
- Fixed asset approval workflow: Fixed amortization status filtering where “Active” status returned records showing as “Completed” due to frontend/backend status calculation differences.
- Custom report row ordering: Fixed indented rows jumping to the top of sections when running custom reports, now preserving the order set in edit mode.
- Customer prepayment sorting: The Remaining Amount column in Customer Prepayments can now be sorted ascending or descending.
- Report row insertion: Fixed newly added account rows not appearing in Formula Row insert dropdowns until the report was saved.
- Exchange rate auto-fill: Fixed form blocking issue where exchange rate fields remained empty and required when base and transaction currencies were the same.
- Activity log refresh: Activity logs on sales orders and cash sales now automatically refresh after editing records to show the latest changes.
- Bank match icons: Updated bank match rules to use the correct lightning bolt icon instead of the ruler icon.
- Workflow selection: Fixed “Select All” checkbox not working properly in Migration Workflow records lists.
- Layout improvements: Fixed navigation bar expansion issues and table layout breaks in various export and organizational management screens.
- Date formatting fixes: Resolved inconsistent date display across bank matching, revenue recognition, and other areas to use your preferred format.
- Multi-currency handling: Fixed allocation schedules allowing selection of inactive customers and vendors, and improved currency handling in forms.
- Permission checks: Added safety guards to prevent undefined permission errors in bank matching interface.
- Bank reconciliation company scope: Fixed issue preventing users from editing or canceling reconciliations linked to the wrong company by properly scoping reconciliation operations by company.
- Integration export validation: Fixed Data Sync export failures caused by validation errors on filter parameters that the list endpoint already accepted.
- Custom report query parameters: Fixed custom reports ignoring URL query parameters like date ranges and column settings, now properly applying all URL-specified options.
- ARR contract report null handling: Fixed crashes in ARR by Contract reports when contracts have no associated customer, now grouping orphaned contracts under “Unknown Customer”.
- AI copilot citation accuracy: Fixed the AI copilot generating clickable citations for non-existent or inaccessible records by improving the system prompt guidance.
- Transaction date resolution: Enhanced integration transaction date handling with new resolver framework for better date field mapping across different integration sources.
- Brex webhook security: Strengthened Brex webhook signature verification with automatic resubscription and improved secret handling to prevent integration disconnections.
- Integration record sync stability: Fixed crashes when integration providers return empty or null record payloads during sync operations.
- Aging report metadata consistency: Resolved race conditions in aging reports where balance calculations could fail due to concurrent data changes between queries.
- Sales order API decimal precision: Fixed 500 errors caused by decimal precision mismatches between database query results and API response validation.
- Revenue revaluation display: Fixed missing amount values in currency revaluation list responses by adding proper total annotations.
- Ramp bill sync reliability: Improved Ramp bill synchronization to handle unapproved bills and reduce sync acknowledgment failures.
- Database connection timeouts: Added automatic retry logic for transient database connection failures in bulk import operations.
- Transaction monitor performance: Eliminated slow database queries in AI transaction monitoring by switching from individual saves to bulk operations.
- Bank matching pipeline scope: Fixed dashboard metrics to only count transactions on bank feeds linked to actual bank or credit card accounts.
- Classification case sensitivity: Resolved classification matching issues in integrations and bulk imports by implementing case-insensitive lookups.
- Contract validation: Added backend validation to prevent creating contracts with inactive terms, ensuring data consistency.
3 new features, 1 improvement, 10 fixes
New features
- Benchmark report delivery: Benchmark reports are now automatically delivered via email with secure magic-link access when processing completes.
- AI copilot record references: The AI copilot now consistently displays record references in PREFIX-id format (e.g., BI-132634) across search results and generated content.
- User management API: Added endpoints to add and remove users from organizations without requiring full user list updates.
- Bulk import classifications: Journal entry imports now support optional classifications in the field mapper, allowing you to import classification data without making it mandatory organization-wide.
- Fixed asset register search: Resolved an issue where search filters were not working correctly in the Fixed Asset Register detail view.
- Bank reconciliation saving: Fixed a bug where reconciliation data was not properly saving in some scenarios.
- Bulk import column mapping: Direct expense bulk uploads now support mapping “Item Vendor Name” and “Classification” columns for Human Capital expenses.
- User invitation management: You can now re-add users with pending invitations to organizations without waiting for the original invite to be accepted.
- Ramp integration customer sync: Customer name changes in DualEntry now properly sync to Ramp expense custom field options.
- AI copilot expense categorization: Fixed an issue where the copilot was incorrectly drafting expense records instead of journal entries for certain Fidelity statement activities.
- AI copilot payment processing: Resolved infinite loops that occurred when creating vendor payments for vendors with no eligible open payables.
- Report formula placement: Fixed drag-and-drop behavior for formulas in reports with groups to ensure proper positioning.
- AP aging report alignment: Outstanding AP dashboard widget totals now match AP Aging report totals for the same filters and dates.
- Performance improvements: Significantly improved aging report calculation speed and reduced AI copilot response timeouts.
11 new features, 5 improvements, 19 fixes
New features
- Enhanced currency management: Added search and filter capabilities to the currency listing API with support for ISO codes and name/symbol search.
- Multi-currency dashboard view: Added support for viewing dashboard widgets in different reporting currencies.
- Financial account connection status: Added
is_linkedfield to financial account endpoints to show bank connection status at a glance. - Fixed asset search: Added search parameter to the asset classes list endpoint for easier asset management.
- Benchmark lead intake: Added public lead capture for the benchmark funnel with automated company enrichment and qualification.
- Fivetran benchmark integration: Added Fivetran connector support for benchmark runs with automated connection flow.
- Stripe analytics mirror: Added read-only Fivetran integration for Stripe data analytics without affecting live sync.
- Billable expense configuration: Added billable columns to Journal Entry line items and billable expense item type support in customer configuration.
- Fixed asset approval workflow: Added For Approval tab and approval list page for fixed assets with workflow status tracking.
- AI copilot memory pagination: Added infinite scroll pagination to the AI copilot memory settings with offset-based loading.
- Keyboard shortcuts panel: Added comprehensive keyboard shortcuts drawer with organized groups for navigation, forms, and copilot actions.
- Trial balance debit/credit columns: Added separate debit and credit columns to the Trial Balance report for improved financial statement preparation.
- Direct expense import mapping: Bulk imports now support mapping vendor and customer names in direct expense imports, with proper line item description handling.
- Recurring record amount display: Added computed amount field to recurring records API for simplified frontend display without client-side calculations.
- Customer credit import improvements: Enhanced bulk import matching for customer credits by adding memo field to prevent duplicate imports.
- Bank match rule pagination: Replaced client-side search with server-side search and pagination for improved performance with large rule sets.
- AI copilot document processing: Fixed issue where AI copilot would create Direct Expenses instead of Journal Entries when users explicitly requested journal entries with document attachments.
- Bank matching performance: Improved bank matching job performance by batching account lookups and reducing database queries.
- Fixed asset schedule calculation: Corrected straight-line prorate even depreciation to properly divide by contract term months instead of N-1 periods.
- Reconciliation display issues: Fixed reconciliation pages showing 404 errors for in-progress reconciliations and excluded archived reconciliations from difference calculations.
- Balance sheet retained earnings: Corrected consolidated Balance Sheet Summary to show cumulative retained earnings instead of current period net income.
- Multi-currency widget translation: Fixed foreign exchange calculations in dashboard widgets to properly translate subsidiary currencies using ASC 830 standards.
- Integration error handling: Improved error handling for WorkOS webhook events from unknown organizations and Finch payroll syncs with missing company mappings.
- Stripe contract sync: Fixed contract synchronization to properly handle zero standalone selling price scenarios.
- AI search performance: Optimized entity search queries by removing redundant operations and improving PostgreSQL index usage.
- Database query optimization: Reduced N+1 queries in AI copilot currency resolution and transaction monitoring detection paths.
- Allocation schedule visibility: Fixed deactivated allocation schedule records disappearing from the list and restored proper filtering.
- Contract recovery status: Fixed recover action for archived and drafted contracts to restore correct status with proper modal options.
- Asset class archive operation: Corrected asset class archive action that was showing success message but not actually archiving records.
- Fixed asset salvage value: Fixed depreciation schedule reload issue when clearing salvage value and set proper default to zero.
- Currency filter improvements: Fixed ineffective search in currency filters and eliminated duplicate currency records in dropdown.
- Archived record editing: Corrected edit button behavior for archived amortization records to show Save instead of Edit on the edit page.
- Amortization navigation: Fixed edit redirects from amortization list view that were navigating to invalid 404 paths.
- Date formatting consistency: Fixed date cells crashing when rendered server-side and standardized date format across VAT/GST tables to respect user preferences.
- Onboarding page failures: Resolved failing onboarding pages by adding missing data context for user settings.
15 new features, 6 improvements, 12 fixes
New features
- Chart of accounts bulk edit: You can now convert multiple expense accounts to COGS accounts simultaneously via bulk edit, even when they share parent accounts.
- QBO cash sales import: QuickBooks Online cash sales with general ledger revenue lines (no item quantities or prices) now import successfully by creating revenue placeholder items per income account.
- Cubby transaction status preferences: Added integration settings to control which Cubby transaction statuses sync to DualEntry. By default, Approved, Failed, and Voided transactions sync while Declined and Error transactions are filtered out.
- Classifications tree API: New hierarchical API endpoint returns classifications as nested trees paginated by root node, enabling better list view performance without splitting parent-child relationships across pages.
- Cross-company customer payment FX: Fixed foreign exchange differential booking for cross-company customer payments to correctly post FX gains/losses on the source entity (invoice holder) rather than the receiving entity.
- HMRC integration foundation: Added base integration framework and authentication for HMRC tax reporting connectivity.
- Dashboard data latency: Reduced data latency in financial dashboards for more up-to-date reporting.
- File upload resilience: Enhanced file processing to handle malformed CSV uploads and different text encodings (UTF-8, Latin-1) more gracefully.
- User date format preferences: Added date format selection to personal preferences, allowing users to customize how dates display throughout the platform.
- Vendor and customer details kebab menu: Added sidebar kebab menu to vendor and customer detail pages for quick access to archive and recovery actions.
- Paper check template sample data persistence: Sample data fields in paper check templates now save correctly and persist when editing existing templates.
- Billable expenses foundation: Added underlying database structure and UI components to support billable expense tracking functionality.
- Keyboard shortcuts drawer: New keyboard shortcuts reference drawer accessible via hotkey provides quick access to all available platform shortcuts.
- AI copilot image upload: You can now upload images (PNG, JPG, JPEG) to the AI copilot for analysis and accounting questions.
- HMRC integration setup UI: Added user interface for establishing connections to HMRC tax reporting integration.
- Copilot performance improvements: Improved AI copilot response times by implementing stale-while-revalidate caching for personalized suggestions and reducing timeout limits.
- Sales order column sorting: Sales order lists now support sorting by Date and Amount columns for better organization and filtering.
- Fixed asset approval workflow: Fixed assets now support approval workflows with configurable policies and context-aware action buttons for saving drafts or sending items for approval.
- Sidebar create record button: Added quick create button to sidebar for faster access to record creation across different modules.
- Recurring records date format: Recurring records list and schedule views now respect your selected date format preference instead of using a fixed format.
- Record picker date format: Date fields in all record selection dropdowns now display using your preferred date format setting.
- Bulk import date mapping: Resolved issue where “Date” field showed as mapped in the UI but failed with “required column is not mapped” error during import.
- Bank match performance: Significantly improved performance of AI-powered bank matching re-runs, reducing processing time from 20 minutes to under 1 second.
- Transaction inbox status: Added missing record status field to transaction inbox API responses.
- Vendor search accuracy: Fixed exact-match vendor search to return only precise matches rather than partial matches.
- Integration sync filtering: Excluded manually edited records from automatic success status filtering in integration syncs.
- Bank match stale data display: Fixed UI glitch in Bank Match module that showed outdated data when switching between accounts or tabs.
- Direct expenses sources filter: Fixed Sources filter dropdown on Direct Expenses list page to properly display integration sources like Stripe and QuickBooks.
- Date format consistency: Updated date displays across customer statements, GL Impact tables, and various listing tables to respect user and organization date format preferences.
- AI copilot chat navigation: Fixed issue where copilot chat would break when replying to messages instead of answering pending questions.
- Anomaly detector exit flow: Fixed inability to exit the anomaly detector creation screen using the discard changes dialog.
- Bank match line errors: Resolved “Line not found. Must have lines” error that occurred during bank matching operations.
- Check template field updates: Fixed issue where several fields were not updating properly after editing check templates from the kebab menu.
11 new features, 4 improvements, 32 fixes
New features
- Webhooks access: Developers can now access webhook configuration and management through the Developer Access section.
- Benchmark analytics: Added new benchmarking interface for performance comparison and analysis.
- Revenue recognition summary: Added reversal entries display in the revenue recognition summary table.
- Avalara integration tax trail: Added tax calculation trail visibility in the Avalara integration page to help with tax calculation debugging and transparency.
- Fixed assets approval policies: Added support for useful life and depreciation method as condition fields in approval policies for fixed assets.
- Customer payment and refund approval workflows: Added approval workflow support for customer payments and customer refunds, matching the existing vendor payment approval capabilities.
- API sorting enhancements: Added amount and date sorting options for purchase orders, sales orders, and contracts in the API.
- Personal date format settings: Added user-level date format preferences that can be configured independently from organization-wide settings.
- Customer prepayment sorting: Added remaining amount sorting capability for customer prepayments and vendor prepayments in the API.
- Bank match rules search: Added search functionality for bank match rules to help locate specific rules more efficiently.
- HMRC integration foundation: Added base infrastructure for HMRC tax integration capabilities.
- AI copilot chat sharing: Updated the share chat interface with improved design and user experience.
- Human-in-the-loop workflows: Enhanced the review interface with design improvements for better workflow management.
- Allocation journals draft tab: Added draft tab to allocation journals list view for better management of in-progress journal entries.
- AI copilot chat interface: Implemented sticky composer dock with single scroll container for improved chat experience.
- Vendor payment methods: Fixed issue where inactive payment methods were still appearing in vendor dropdown selections.
- Vendor payment amount updates: Resolved issue where remaining amounts weren’t updating in real-time during vendor payment creation.
- Contracted invoice recovery: You can now properly recover contracted invoices directly from the invoice list.
- Customer refund check templates: Mandatory fields are now properly highlighted and available in print check templates for customer refunds.
- Bank matching interface: Fixed display issues that were causing the bank match screen to break.
- Page refresh error messages: Eliminated UI flicker and unnecessary error notifications that appeared during rapid page refreshes.
- Anomaly detection layout: Fixed content alignment issues on the anomaly detection page.
- AI copilot session errors: Resolved crash that occurred when loading chat sessions during server-side rendering.
- Customer credit creation: Fixed unresponsive save button in the Add Customer Credit drawer when creating credits from contracts.
- Contract terms selection: Inactive contract terms are no longer selectable in Contract Term and Performance Obligation sections.
- Allocation journal account filter: Inactive accounts are now properly filtered out of the allocation journal items section.
- Migration transactions query: Fixed error when viewing migration transactions by removing incompatible pagination parameters.
- Purchase order PDF dates: Purchase order PDFs now display dates according to your organization’s configured date format.
- Bank match tab persistence: Active tab selection now persists when switching between accounts and companies in bank matching.
- Radio button DOM warnings: Eliminated React warnings about unknown DOM properties in radio button components.
- Contract address validation: Fixed billing and shipping address validation errors in contract templates.
- Revenue recognition status filter: Fixed issue where status filter in Advanced Revenue Recognition tabs didn’t properly filter records or switch to the corresponding status tab.
- Allocation journal item addition: Resolved error that occurred when trying to add items on Allocation Journals.
- Bank matching circular dependency: Fixed circular dependency issue between create and to-match functions in bank matching.
- Vendor payments hook errors: Resolved React hook rendering error that occurred in vendor payments interface.
- Migration background placeholder: Removed unnecessary “Migrations running in the background” placeholder that appeared during data resync operations.
- API validation schema: Updated validation rules to ensure proper data validation across the platform.
- Bill.com integration duplicates: Fixed issue where archived records were incorrectly considered when checking for duplicates in Bill.com integration.
- Xero draft invoice sync: Draft invoices from Xero are now properly skipped during sync and only processed once they reach an active status.
- Brex reimbursement processing: Fixed reimbursement transaction processing to use bills and vendor payments instead of journal entries, ensuring proper vendor payment linkage.
- Ramp sync error suppression: Eliminated unnecessary error reporting when Ramp sync operations encounter expected “sync already in progress” responses.
- Organization clone shared keys: Fixed organization cloning for tables with shared primary keys to ensure proper data migration.
- Integration record performance: Improved query performance for large integrations by adding database indexes for created and updated timestamps.
- Contract template address prefill: Customer billing and shipping addresses now properly prefill from contracts and persist during template creation.
- AI search query performance: Rewrote search records query with conditional joins and optimized filtering for improved response times.
- Benchmark organization linking: Fixed duplicate benchmark organization creation when relinking WorkOS organizations.
- Benchmark attachment fixtures: Resolved attachment fixture conflicts that were causing benchmark cases to fail silently.
17 new features, 5 improvements, 24 fixes
New features
- Multi-currency dashboard: View all dashboard figures in your chosen currency with a new reporting currency selector that mirrors the reports currency control.
- Customer statements: Customer statement functionality is now available to all users without feature flag restrictions.
- Subledger lines view: Added a new table view for revenue subledger lines on contract detail pages for better transaction visibility.
- Stripe revenue workflows: Added workflows tab and routing rules list page for enhanced revenue workflow management.
- AP/AR aging reconciler: New statement reconciler for accounts payable and accounts receivable aging reports to streamline reconciliation workflows.
- Organization date format settings: Added date format preferences in organization settings with live preview of formatting options.
- Manual tax calculation warnings: Added warning messages when records are saved without tax calculation in manual mode to prevent incomplete entries.
- Vendor payment approval workflows: Added approval workflow support for vendor payments, refunds, credits, and prepayments to match existing customer payment approval capabilities.
- Revenue recognition reversals: Added support for reversing revenue recognition entries when contracts are terminated, replacing proration adjustments.
- Contract recognition modes: Added subledger mode option for contract revenue recognition alongside the existing individual posting mode.
- Stripe refund automation: Enhanced refund processing for direct charges with automated credit memo creation and validation.
- Copilot document classification: AI document uploads now intelligently classify invoices vs bills based on document content and user instructions instead of defaulting to bills.
- Search functionality for user management: Added search capability to the user management interface with fuzzy matching and multi-word support.
- Webhook support for developers: Added comprehensive webhook functionality for organizations to receive real-time notifications of record changes and events.
- Enhanced contract templates: Contract templates now properly store performance obligation terms and validate against inactive payment terms.
- Address validation: Added address validation functionality to ensure data quality and compliance requirements.
- Multi-company payroll routing: Extended consolidated payroll journal entry routing to all Finch providers including Paychex Flex, Gusto, Justworks, and UKG Ready.
- Invoice PDF date formatting: Invoice PDFs now display dates using your organization’s preferred date format setting for consistent formatting across all documents.
- Inactive vendor visibility: Inactive vendors and customers now display an “Inactive” badge in the status column for better record identification.
- Sidebar navigation animation: Improved user experience with optimistic loading animations during sidebar navigation.
- Manual reporting currency rates: Dashboard currency selector now supports manual exchange rates in addition to system rates, matching the reports currency control functionality.
- Prepayment application approvals: Approval workflows now support customer and vendor prepayment applications for enhanced control over payment processing.
- Item fulfillments filter: Fixed status filter to correctly show Posted/Draft/Archived options instead of non-existent Active/Inactive states.
- Nexus drawer opening: Fixed issue where clicking nexus number/ID would not open the nexus drawer properly.
- Phone validation messages: Improved clarity of phone number validation error messages for better user guidance.
- Vendor table performance: Resolved N+1 API calls that caused performance issues in vendor and item listing tables.
- Custom fields form reset: Fixed custom field forms not properly resetting values and tabs when switching between different field edits.
- Bill expense account mapping: Fixed error messages when bill items have unmapped expense accounts to provide clearer guidance.
- List table layout: Resolved visual gaps in vendor and other listing tables by properly filling available table width.
- Invoice listing refresh: Fixed issue where invoice listings would not update after creating or editing records without manual page refresh.
- Organization settings validation: Fixed save button functionality after validation errors in organization settings forms.
- React key warnings: Eliminated missing React key warnings on list pages including fixed assets overview and other data tables.
- Chart of accounts validation: Fixed validation errors when changing both account type and parent account in a single save operation.
- Cross-company payment exchange rates: Fixed incorrect GL entries for foreign exchange differentials in cross-company vendor payments.
- Customer payment currency validation: Resolved error when processing customer payments with identical base and transaction currencies.
- Copilot journal entry edits: Fixed issue where AI copilot would report successful journal entry updates when no changes were actually saved.
- Date filter validation: Added proper validation for date filters in record searches to prevent system errors from malformed dates.
- Bank match transaction counts: Corrected inflated unmatched transaction counts by fixing historical transaction status labels.
- Report query execution: Fixed broken SQL queries in exported reports that were failing due to improper parameter quoting.
- Bulk customer name updates: Restored ability to update customer names through the bulk import system.
- Multi-currency dashboard conversion: Fixed dashboard widgets incorrectly summing raw amounts instead of applying proper currency conversion for multi-entity views.
- General ledger account exclusions: Fixed issue where excluded accounts were still visible in General Ledger reports after enabling the exclude toggle.
- QBO migration soft deletes: Migration now properly skips Fivetran soft-deleted deposits and transfers instead of importing them as active transactions.
- Aging report performance: Optimized accounts payable and receivable aging report performance by eliminating duplicate queries and unnecessary sorting.
- Task recovery for chat messages: Added automatic recovery system for chat messages stuck in streaming status due to worker failures or crashes.
- Record sync performance: Fixed N+1 query issues in integration record synchronization that were causing performance degradation.
14 new features, 3 improvements, 19 fixes
New features
- Multi-currency dashboard: Dashboard widgets now convert monetary figures into your selected reporting currency, so currency selection actually changes the displayed numbers.
- Stripe payment charging: Accounts receivable users can now charge stored payment methods directly against open invoices, with payments automatically posting to the general ledger.
- Bill.com Divvy card support: Enhanced Bill.com integration now detects Divvy (AP_CARD) funding accounts and creates mapping opportunities for vendor payments.
- Integration performance boost: Connector processing is now approximately 50% faster due to optimized data handling during aggregation.
- Manual tax calculation: Added “Calculate tax” button to line items and expense summaries when tax computation mode is set to manual, giving users explicit control over when tax calculations are triggered.
- Brex integration streamlined: Simplified Brex accounting field configuration by removing GL Account and Accounting Entity overrides, which Brex does not support.
- AI Copilot unreconciled difference proposals: AI Copilot can now propose reconciling journal entries when asked to close unreconciled differences during reconciliation tasks.
- AI Copilot file attachment support: Copilot can now attach files to existing journal entry drafts and other records, with proper ownership validation to ensure only session files are used.
- AI Copilot journal entry line editing: Fixed Copilot’s ability to update customer and vendor information on journal entry lines, including proper support for currency and classification fields.
- Bank transfer import distinction: Bulk imports now differentiate bank transfers by memo field, allowing memo changes to create new transfers while identical memos update existing ones.
- Fixed assets approval filtering: Added approval status filter to fixed assets list view for better workflow management.
- Amortization approval filtering: Added approval status filter to amortization list view and enabled amortization debit account as workflow condition.
- Organization date format preference: Added configurable date format setting to organization preferences with support for MM/DD/YYYY, DD/MM/YYYY, YYYY-MM-DD, DD-MM-YYYY, and MM-DD-YYYY formats.
- Public API account creation: Added POST endpoint to create chart of accounts entries programmatically, enabling accounts to be managed as code during onboarding.
- QuickBooks migration improvements: One-click migrations from QuickBooks now auto-map default accounts more reliably and send completion emails only after the initial migration finishes.
- AI Copilot interface redesign: Updated artifacts and settings pages with improved layouts and visual consistency based on the latest design system.
- Bill.com credit card mapping: Credit card options now appear first in the mapping selector when working with Divvy accounts, with credit card selected as the default account type for new accounts.
- AI artifact search: Fixed search returning no results by ensuring all AI-generated artifacts have descriptive titles.
- Journal entry imports: Bulk journal entry imports now properly handle missing memo fields with default empty values.
- OCR task reliability: Resolved race condition where OCR tasks would fail due to database replication timing issues.
- Search query errors: Fixed crashes when searching for terms like “infinity” or “nan” that could break numeric field queries.
- Bank matching performance: Eliminated slow bulk-delete operations in suggestion cleanup tasks.
- Integration test stability: Fixed flaky tests in record export functionality that were causing intermittent failures.
- Approval workflow modal behavior: Fixed preview drawer appearing underneath workflow creation modals and resolved modal stacking issues in the approval policies interface.
- Currency pagination handling: Resolved frontend currency selection issues when working with paginated currency response data.
- Migration currency display: Fixed currency handling issues during the migration process that could cause incorrect currency selection.
- Dashboard redirect loop in Firefox: Fixed infinite redirect loop issue that prevented dashboard access in Firefox browsers.
- Allocation journal page loading: Fixed allocation journal detail page failures when allocation schedule data is unavailable.
- Dashboard performance: Eliminated render-blocking server requests that were delaying initial page load across all dashboard routes.
- Paycom payroll mapping: Fixed payroll journal entries to follow individual employee to company mappings instead of posting entire pay runs to a single company.
- Bulk import validation errors: Fixed bulk bill imports that were rejecting valid data with generic error messages when required fields contained empty values.
- Direct expense source filtering: Fixed source filter displaying mixed manual and integration records instead of filtering to only selected source records.
- Cross-company transaction deletion: Resolved database constraint violations during sandbox conversion when organizations contain intercompany billing data.
- Xero migration account conflicts: Fixed migration failures when duplicate default tax liability accounts were created by concurrent sync workers.
- Concurrent Stripe charge protection: Added safeguards to prevent duplicate charges when multiple users attempt to charge the same invoice simultaneously.
- Integration record skipping: Excluded skipped integration records from source filters and remote record resolution to improve data accuracy.
11 new features, 7 improvements, 9 fixes
New features
- AI Copilot citations: Specialist agents (SQL query, expense analysis, revenue analysis) now properly format record references as clickable citations instead of plain text.
- Bank match automation: Introduced standalone background workers for automated bank transaction matching using both rule-based and AI-assisted methods.
- Fixed assets approval workflows: Added save as draft, submit for approval, approve, and reject capabilities for fixed asset records with full audit trail support.
- Amortization approval workflows: Extended approval workflow support to amortization schedules with draft submission and approval capabilities.
- Stripe payment method vault: Customers can now securely save payment methods through Stripe-hosted pages for future invoice payments.
- Workflow coverage expansion: Added approval workflow support for direct expenses, cash sales, customer prepayments, and customer deposits.
- Journal entries API enhancement: Added updated_after/updated_before filters and created_at/updated_at timestamps to the public journal entries API for incremental synchronization.
- QBO statement reconciliation: Introduced automated reconciliation between QuickBooks P&L statement exports and DualEntry figures.
- Avalara tax code lookup: Added endpoint for searching and selecting Avalara tax codes with real-time lookup capabilities.
- Customer statement search: Enhanced search functionality to recognize ST- prefixes in customer statement searches.
- Stripe revenue recognition aggregation: Added configuration options and processing for aggregated revenue recognition from Stripe transactions.
- Master data search enhancement: Added number field indexing for master data records (customers, vendors, items) to improve search capabilities.
- Overview list tab animations: Added loading animations and optimistic state updates to improve responsiveness when switching between tabs on overview list pages.
- Reports under construction indicator: Added visual indicators for reports that are currently being improved or rebuilt.
- Customer tax exemption management: Enhanced customer tax settings with improved exemption certificate handling for Avalara integration.
- Report center search improvements: Fixed search functionality in Created By filters on the Report Center custom tab.
- Trial Balance date range restoration: Restored the start and end date range picker for Trial Balance reports and improved zero balance display formatting.
- Checklist refresh automation: Creating new checklists now automatically refreshes the checklists list view.
- AI Copilot attachment recognition: Fixed issue where running slash skills would disable attachment recognition in the same message.
- Bank reconciliation precision: Resolved 409 errors in reconciliation selection endpoint caused by microsecond precision loss in timestamp comparisons.
- Trial Balance performance: Fixed N+1 query issues in trial balance summary reports by properly grouping related data.
- Draft-only rule tracking: Bank matching rules that only create drafts are now tracked as a separate outcome instead of failures.
- Nexus search: Fixed search functionality for tax nexuses when searching by Nexus ID.
- Multiple reporting fixes: Resolved various balance sheet and trial balance calculation discrepancies, including consolidation amounts, beginning balances, and column totals.
- Vendor metadata tolerance: Made vendor metadata output schema tolerant of missing ID and name fields to prevent 500 errors.
- Fixed asset edge cases: Improved handling of edge cases in fixed asset partial submission workflows.
- Bank transaction loading: Fixed issue where bank matching failed to load transactions for linked bank accounts.
15 new features, 2 improvements, 25 fixes
New features
- Fixed Assets approval workflow: Save fixed asset records as draft and submit them for approval through the standard approval workflow system.
- Tax settings API: Configure tax computation mode (manual or automatic) and tax reminder settings through the organization settings API.
- Customer tax exemption: Apply Avalara entity use codes for customer tax exemptions, with a new API endpoint to manage exemption codes.
- Date range filtering for consolidated rates: Query consolidated rates across multiple months using start_date and end_date parameters instead of requesting one month at a time.
- Customer credit approval workflows: Submit customer credits through the approval workflow system for proper review and authorization.
- Company search for bills: Search and filter bills by company name and ID in the document search interface.
- Stripe integration aggregator: New aggregation engine for high-volume Stripe clients that routes records into configurable buckets and creates DualEntry entities based on workflow manifests.
- Integration record aggregator: Config-driven workflow system that aggregates integration records, classifies amounts into named buckets, and materializes corresponding entities like contracts, invoices, payments, and journal entries.
- Custom fields on invoices and bills API: Invoice and bill list endpoints now return custom field data, matching what’s available on detail endpoints.
- Bank match re-evaluation: Automatically retry matching for previously unmatched bank transactions when new entries are posted.
- AI copilot context overflow handling: Graceful handling of context window limits with structured warning messages instead of generic errors.
- Plan step completion tracking: Live status updates for task plan steps during AI copilot execution with persistent completion signals.
- Contract invoice editing restrictions: Contract invoices can now only edit memo, reference number, term, due date, custom fields, payment method, and attachments to maintain contract integrity.
- Revenue recognition mode selector: Configure recognition mode settings on contracts with visual indicators in the subledger interface.
- Stripe revenue workflow routing: New workflows tab for Stripe integrations with configurable routing rules for revenue processing.
- API key modal text wrapping: Improved text display in API key creation modals for better readability.
- Custom scrollbar styling: Improved scrollbar appearance and behavior across the application interface.
- Items source filter: Fixed source filtering on the Items list to properly filter records and display the correct source information.
- Customer report filtering: Resolved issue where customer-filtered reports showed data for all customers instead of only the selected ones.
- Xero migration voided journals: Voided manual journals from Xero migrations now import as archived records instead of affecting actuals.
- Customer payment attribution: Restored proper attribution of overpayments and deposits in customer-scoped reports and AR aging.
- Tax computation mode default: New organizations now default to automatic tax computation instead of manual mode.
- Celery task retry reliability: Added automatic retries for database connection errors in login audit and workflow scheduling tasks.
- Bank match processing distribution: Spread bank match processing to prevent load spikes during high-volume operations.
- MCP outbound tool execution: Fixed first-call failures and database connection leaks in Model Context Protocol outbound tool calls.
- Ramp integration demo mode: OAuth connect flow now properly honors demo integration settings and uses sandbox credentials.
- Organization currency provisioning: Fixed currency matching issues when provisioning new sandbox environments.
- Journal entry N+1 API calls: Eliminated redundant account API requests when loading journal entries to improve page performance.
- Company creation drawer: Fixed issue where create new company screen would not appear after clicking the Create New button.
- Status filter label consistency: Standardized approval status labels to consistently show “Pending Approval” across all interfaces.
- Currency revaluation status filtering: Fixed status filter accuracy on the Currency Revaluation page to show correct results.
- Vendor list sorting: Newly created vendors now properly appear at the top of the vendor list in descending order.
- Tax calculation request throttling: Added debouncing to reduce redundant tax calculation API calls during form input.
- Form state caching: Fixed infinite loop warnings by properly caching server-side form snapshots.
- Onboarding company structure: Prevented creation of multiple top-level companies that would cause finalization errors.
- Fixed asset 404 handling: Added proper error page display when accessing invalid fixed asset IDs.
- Journal entry reversal validation: System now properly requires reversal date when reversal option is enabled.
- Tax registration data handling: Cleaned up legacy tax registration number handling to use structured record format.
- Integration sync status badge: Fixed multi-line display issues with sync status indicators in integration panels.
- Trial Balance FX totals: Fixed foreign exchange totals in Trial Balance summary to properly match Balance Sheet by using inception-to-date calculations.
- Company address persistence: Fixed issue where selecting only a country in company address would not save the address information properly.
- Draft record filtering: Fixed approval workflow filtering on draft tabs to exclude records with approval workflows from the draft view.
3 new features, 4 improvements, 21 fixes
New features
- Customer import template: Added support for assigning parent customers during bulk customer imports.
- Integration sandbox routing: Separated sandbox and production integration restrictions from organization sandbox labels for more flexible deployment configurations.
- Stripe revenue recognition: Added configurable revenue recognition methods for Stripe subscription invoices with options including straight-line proration and usage-based recognition.
- Report filtering: Customer and vendor filters now display complete parent-child hierarchies with “Include Children” support for better organization visibility.
- AI Copilot interrupts: Improved customer payment creation flow with better interrupt handling for future-dated invoices and enhanced validation prompts.
- Documentation citations: AI Copilot now properly converts all relative documentation links into clickable citations, improving the help experience.
- Report exports: Added direct links to reports from AI Copilot artifacts and improved export functionality.
- Bulk import grouping: Resolved an issue where multi-row imports would fail due to column header parsing problems with trailing hints.
- Cubby integration: Fixed point-of-sale and manually-entered payments not posting as journal entries in the Cubby integration.
- Database sequence reset: Fixed a crash in sandbox export tasks caused by incorrect primary key column references in sequence reset operations.
- WorkOS user provisioning: Handled rare race conditions where user accounts disappear during organization membership provisioning.
- AI Copilot routing: Fixed “list all vendors” queries being routed to the wrong processing agent.
- Report crashes: Fixed all reports in Report Center failing to load due to unknown filter key handling.
- Trial Balance reports: Resolved loading failures for Trial Balance Summary and Detail reports by properly registering transaction date filters.
- Multi-currency display: Fixed consolidated currency symbols appearing next to unconverted amounts when no exchange rate was processed.
- Income Statement customization: Fixed newly added row groups inserting at the bottom instead of below the add button and disappearing after save.
- Customer payment forms: Fixed AI Copilot customer payment drafts not properly loading customer information when only customer ID was provided.
- People invitations: Added proper validation for required fields (first name, last name) when sending user invitations.
- Fixed assets UI: Resolved interface freezing when entering long values in the salvage value field during asset class creation.
- Recurring journal entries: Fixed validation messages and UI alignment issues for the recurring name field.
- Record tab loading: Improved loading state indicators for record detail tabs.
- Import job errors: Fixed authentication error handling when fetching import jobs to prevent generic error messages.
- Brex integration: Corrected customer custom field setting synchronization between Brex and DualEntry.
- AI Copilot artifacts: Fixed empty artifacts rendering as placeholder tiles and improved loading state indicators.
- Company selection: Fixed crashes on invoice detail pages when company list pagination encountered null data.
- Chat interface: Improved suggestion hover states and fixed background graphics disappearing during chat interactions.
- Account number display: Fixed comma formatting issues in AI Copilot account number artifacts.
- Trial Balance date range: Reverted changes to Trial Balance date picker functionality to restore proper start date selection for periods not beginning January 1st.
7 new features, 5 improvements, 23 fixes
New features
- NextDay Migration loading screen: Added a full-screen loading state while converting sandboxes to migrated organizations, with immediate migration start when clicking the redesigned “Start your NextDay Migration Now” CTA.
- Trial Balance Debit and Credit columns: Added optional Debit and Credit column selector on Trial Balance summary reports, giving users more control over displayed monetary data.
- Contract template payment methods: Added payment method selection to contract template forms, matching the functionality available in the main contract creation workflow.
- Bank reconciliation AI tools: Added new AI Copilot tools for managing bank reconciliations, allowing users to list, check status, create, and finalize reconciliations through natural language commands.
- Approval workflows for Fixed Assets and Amortization: Added approval workflow capabilities to Fixed Assets and Amortization modules, enabling structured review processes for asset and amortization transactions.
- Personalized prospect onboarding: Added AI-powered personalized onboarding for new prospects, featuring tailored welcome messages and customized feature recommendations based on HubSpot profile data.
- Custom Report Builder row group options: Added “Do Not Expand” option for row groups in Custom Report Builder, giving users more control over report presentation and data organization.
- Trial Balance date picker enhancement: Switched Trial Balance reports to use an as-of-date picker instead of date ranges, simplifying report generation by computing results from a single end date.
- Custom scrollbar styling: Updated scrollbar appearance across the application for improved visual consistency and user experience.
- AI Copilot developer documentation access: Expanded AI Copilot’s knowledge base to include developer documentation, enabling citations from API reference guides and technical documentation alongside accounting resources.
- Stripe subscription billing improvements: Enhanced Stripe integration to calculate subscription bills as periods multiplied by rate rather than flat totals, providing more accurate billing breakdowns.
- Contract start date sorting: Added start date as a sorting option for contracts, improving organization and navigation of contract lists.
- AI Copilot chat panel overflow: Fixed issue where response content was cut off in the chat panel, requiring unnecessary scrolling to read full responses.
- AI Copilot skills dropdown navigation: Fixed skills dropdown menu links that were directing users to outdated pages instead of current skill management interface.
- AI Copilot fullscreen transition: Removed automatic transition to fullscreen mode that was interrupting user workflow.
- Tax nexuses export completeness: Fixed missing columns and records in nexuses export files to match the complete data shown in the UI list.
- Item receipts status filter: Corrected status filter to show only valid receipt states, removing non-existent “Active” and “Inactive” options.
- Custom fields form rendering: Resolved error that occurred when custom fields loaded during initial page render, improving form stability across customer deposit workflows.
- AI Copilot customer payment validation: Improved AI Copilot’s handling of customer payments by adding validation checks for invoice amounts and future-dated transactions, ensuring more accurate payment processing suggestions.
- AI Copilot documentation citations: Enhanced citation system to link directly to specific sections within documentation pages rather than just page tops, making it easier to find relevant information.
- AI Copilot vendor listing routing: Fixed routing issue where “list all vendors” queries were incorrectly directed to record retrieval instead of the proper query agent.
- AI Copilot streaming response duplication: Resolved issue causing duplicated or garbled text chunks during complex AI operations involving multiple sub-agents running simultaneously.
- AI Copilot citation spam reduction: Improved citation behavior to avoid repeatedly citing the same documentation page within a single response, reducing redundant citations while maintaining helpful references.
- AI Copilot record preview duplication: Fixed issue where record previews were displayed twice during journal entry editing operations.
- AI Copilot session intent visibility: Prevented internal session intent information from appearing in user-visible chat responses, keeping the interface clean and focused on user-relevant content.
- AI Copilot customer credit draft linking: Fixed customer and vendor credit drafts to properly maintain source record links when creating new transactions.
- Brex MCP server integration: Fixed Brex MCP server tool discovery that was failing with “could not discover tools for this server” error, restoring proper Brex integration functionality.
- QuickBooks Online transfer currency handling: Fixed import failures for QBO transfers by properly deriving currency from transfer records rather than relying solely on account-based currency detection.
- NextDay Migration session handling: Improved migration process to avoid logging users out mid-migration by deferring source system teardown until after successful session transfer.
- Migration account sorting: Fixed transaction count sorting to properly display accounts with zero transactions at the top of migration lists.
- Ramp reimbursement categorization: Fixed issue where departments and classifications were not being properly applied to bills during Ramp reimbursement synchronization.
- Fixed Asset Register custom reports: Resolved “error fetching report data” failures when loading Fixed Asset Register custom reports.
- Balance Sheet Detail classification filtering: Fixed Balance Sheet Detail view to show only filtered transactions in classification pivot rows instead of displaying all transactions.
- Identifier column formatting: Fixed formatting of identifier-like columns (account numbers, customer IDs, codes) to display as text rather than numbers, preventing unwanted thousands separators and right-alignment.
- Transaction monitoring statistics overflow: Fixed numeric field overflow errors in transaction monitoring statistics for high-value transactions in currencies with large denominations.
3 new features, 2 improvements, 8 fixes
New features
- Preview badge for Accounting Copilot: Added a preview indicator to clearly communicate that the Accounting Copilot feature is in preview status.
- Personalized prospect onboarding: New AI-powered onboarding experience that provides personalized guidance for prospects exploring DualEntry.
- Copilot chat persistence: The AI copilot now preserves your draft messages when navigating between pages, so you won’t lose your input when exploring Skills or other sections.
- Accounting Copilot documentation citations: The AI copilot now displays source citations from DualEntry’s documentation when answering questions, helping you verify and explore the underlying guidance.
- Improved copilot scrolling performance: Enhanced message loading and scrolling in long AI copilot conversations for smoother interaction.
- Contract template search filtering: Fixed an issue where contract template search did not properly filter results when creating new contracts in revenue recognition.
- Dynamic select “Load more” search: Resolved a bug where search terms were not applied when clicking “Load more” in dropdown selectors.
- Item description field validation: Corrected validation that incorrectly required description fields for goods, service, and discount type items.
- Cash sales form buttons: Fixed missing “Save and Post” and “Save as Draft” buttons that weren’t visible on initial page load for cash sales transactions.
- Copilot Skills search input: Fixed an issue where the Skills search field would not accept input after triggering skill suggestions.
- Copilot scrollbar alignment: Corrected scrollbar positioning to align properly with the right edge of the copilot container.
- Contract related records loading: Resolved duplicate loading skeletons appearing on contract related pages.
- Numeric column formatting: Fixed an issue where identifier columns like account numbers displayed with thousands separators instead of plain text formatting.
1 new feature, 8 improvements, 33 fixes
New features
- Cryptoworth MCP integration: Added one-click Cryptoworth MCP marketplace preset that enables the AI Copilot to connect to crypto sub-ledger data including portfolio positions, gains and losses, transactions, cost basis calculations, DeFi positions, and reconciliation status through OAuth2 authentication.
- Trial Balance date selection: Trial Balance reports now use a single as-of-date picker instead of a date range, making it consistent with other balance sheet reports and simplifying report generation.
- Contract template enhancements: Contract templates now include payment ID fields for improved payment tracking and contract management.
- Bank reconciliation matching: Enhanced bank transaction matching with support for rule-based automated matching, allowing you to create and match transactions using predefined rules for faster reconciliation.
- Customer and vendor hierarchy filters: Line Customer and Line Vendor report filters now support parent-child hierarchy views with “Include Children” functionality, matching the organization structure used in other customer reports.
- AI Copilot session tracking: The AI Copilot now provides enhanced session lifecycle tracking with detailed routing and delegation events for improved transparency during complex accounting queries.
- Custom Report Builder row group expansion: Row groups in Custom Report Builder now include a “Do Not Expand” option, giving you more control over how detailed information is displayed in your custom reports.
- Classifications record type clarity: Classifications forms now display clear sub-headers that explain the OR relationship between record types and companies, making it easier to understand classification criteria.
- Sandbox migration performance: Sandbox environments now use an archive-and-swap migration flow that provisions a fresh organization and moves users to the new environment in seconds, replacing the slower in-place data clearing process.
- Revenue recognition contract templates: Resolved type errors that could occur when working with contract templates in the revenue recognition module.
- Customer drawer layout: Fixed inconsistent padding between the footer and content areas in the customer details drawer.
- Recurring transaction validation: Improved error messaging for recurring invoices and cash sales to clearly show validation errors when items have zero quantity or zero total amounts.
- Income Statement formula rows: Newly created row groups now appear immediately in the formula row insertion search, eliminating the need to refresh the page.
- Fixed Asset Register custom reports: Fixed an issue where saved custom Fixed Asset Register reports would show a blank page when accessed from the Report Center.
- Custom report row groups: Row group totals in custom reports now display correctly at the bottom of their respective sections with proper formatting and positioning.
- Bank reconciliation status updates: Fixed an issue where bank reconciliations would not properly update to “Reconciled” status after completion when archived items were present.
- Multi-currency bank matching: Resolved currency mismatch errors that could occur when matching transactions in the same currency due to external account currency field drift.
- Database query performance: Improved performance across multiple endpoints including bills, intercompany journal entries, and customer payments by eliminating inefficient database queries.
- AI Copilot company selector: Fixed multiple vertical scrollbars appearing in the company selection dropdown within the AI Copilot interface.
- Nexus memo field display: Corrected an issue where memo field text was incorrectly displayed in the Description column on the Nexus list page.
- Currency bulk operations: Fixed “Failed to toggle currencies” error when using bulk toggle actions on multiple active and inactive currency records, with improved error messaging.
- Company creation navigation: Fixed an issue where clicking “Create New” from the company details drawer would close the drawer instead of opening the New Company page.
- Fixed Assets asset class search: Resolved search functionality in Fixed Assets asset class dropdowns to properly return matching results.
- Items archived record options: Removed unexpected “Recover as Draft” and “Recover and Post” options from archived item detail pages that don’t use draft workflows.
- Contract search in invoices: Fixed contract dropdown search functionality in invoices to properly display matching results when searching by Contract Number.
- Vendor drawer footer alignment: Corrected footer button alignment in vendor drawers to match the form body layout.
- QBO migration classification editing: Fixed crashes that occurred when editing classification attributes during QuickBooks Online migration.
- Default dashboard actions: Removed rename and delete options from default dashboard action menus, as these operations are not supported for system dashboards.
- API error handling: Improved handling of HTML responses from API endpoints to prevent unhandled exceptions during temporary service disruptions.
- Contract template name field validation: Fixed contract template name field to correctly reflect its required status, removing the misleading “optional” hint text.
- Bulk Import mapping step: Resolved Server Components render error that could occur on the Map Fields step during bulk import operations.
- Checks template status dropdown: Fixed an issue where the Active status dropdown was not clickable in New and Edit Template forms for check templates.
- VAT rate name validation: Fixed validation for VAT and GST rate names to properly reject whitespace-only input with clear error messaging.
- Allocation journal bulk actions: Fixed “Field required” validation errors that occurred when archiving or recovering allocation journals from the kebab menu or bulk selection.
- New Company button permissions: Hidden the New Company button from view-only users to prevent access to restricted functionality.
- AI Copilot period comparison reports: Fixed an issue where period-over-period reports would incorrectly show identical totals for both periods, preventing accurate change calculations.
- Fixed Assets excluded accounts: Fixed excluded account filters in Fixed Asset reports to properly hide selected accounts when “Exclude selected accounts” is enabled.
- Invoice item validation: Resolved “record blocked” errors that could incorrectly appear when changing items on invoices where no discount strategy was being modified.
- Close Management import status: Improved error messaging for close process import failures to provide clearer guidance on resolution steps.
- Bank connection health monitoring: Fixed attribute errors in bank connection health check processes that could cause monitoring failures.
- AI Copilot session links: AI Copilot session links shared to Slack now direct users to the read-only session replay page for better review experience.
- Payroll sync logging: Removed excessive error logging for expected dual-line accounting adjustments in payroll syncing that was generating unnecessary alert noise.
6 new features, 7 improvements, 18 fixes
New features
- Bank Match preview: Added preview endpoint for bank reconciliation rules, allowing you to see the proposed match before applying changes.
- Customer data sync to Brex: DualEntry customers can now be automatically synced to Brex as custom ERP fields with transaction mapping support.
- Trial Balance customer pivot: Added column pivot option to trial balance reports, enabling customer-specific breakdowns for enhanced analysis.
- Paper check recovery: Archived paper checks can now be restored using new Recover actions in bulk operations, row menus, and check detail pages.
- Customer transaction controls: New transaction creation is now properly disabled for archived, drafted, or inactive customers to prevent invalid entries.
- Allocation schedule validation: Added error toast notifications when mandatory fields are missing during allocation schedule creation.
- AI Copilot plan view: AI-generated task plans now display inline with conversation prompts for better visibility and workflow clarity.
- Contract template item names: Contract obligation templates now include item names in API responses for easier identification and management.
- Bulk import streaming: Large file imports now process records in streaming mode, improving memory efficiency and performance for multi-thousand row files.
- Enhanced performance monitoring: Improved system observability with detailed performance tracking across AI operations and tool execution.
- VAT and GST rate management: Added comprehensive view and edit capabilities for VAT and GST tax rates with improved validation and form layout.
- Revenue recognition page migration: Legacy change-order and termination redirect pages now use client-side navigation for improved performance.
- Revenue recognition client forms: Contract creation, editing, and change order forms now load client-side for improved performance and user experience.
- AI Copilot line references: Fixed missing line-level record references in copilot-generated customer deposits, vendor payments, customer payments, customer refunds, and vendor refunds.
- Aging report drill-down: Resolved issue where drilling into “No Vendor” or “No Customer” rows in aging reports returned incorrect or empty results.
- Trial Balance customer assignments: Fixed imported journal entries with customer assignments not appearing correctly in trial balance reports.
- Fixed Asset Register sorting: Chart of accounts and beginning balance rows now appear in correct order when Balance column is added to Fixed Asset Register.
- Database connection handling: Resolved deadlock issues in sequence generation and improved connection routing for better system stability.
- Rollforward report accuracy: Fixed discrepancy where ending deferred revenue didn’t match beginning deferred revenue of the following month.
- Search performance: Optimized OpenSearch integration to prevent result truncation and improve query response times.
- Custom fields server rendering: Fixed server-side rendering crashes on record detail pages with custom fields.
- Revenue recognition obligation validation: Added proper validation for missing classification fields in contract obligations.
- Bank Match rule menu: Fixed issue where rule menu drawer would not close when clicking Edit Rule.
- Audit trail record links: Restored missing record links and role information in audit trail entries for integration-generated transactions.
- Income Statement row insertion: New rows and groups now insert at the correct position below the add button instead of at the bottom of sections.
- AI Copilot navigation: Fixed issue where clicking the sidebar icon did not navigate to the main copilot page when starting new chats.
- Customer credits bulk operations: Resolved context provider issue preventing bulk edit classifications from working properly on customer credits.
- Data sync filter performance: Fixed transaction type filters triggering invalid mapping requests when scoped by entity type.
- Vendor auto-selection: Fixed issue where newly created draft or inactive vendors were being auto-selected in transaction forms.
- Contract duplication: Fixed error when duplicating revenue recognition contracts by properly resetting obligation IDs.
- Change order GL impact: Resolved production build failure when viewing GL impact tab on change order detail pages.
7 new features, 3 improvements, 20 fixes
New features
- Revenue recognition: Added ARR and MRR aggregation reporting for better financial visibility.
- Revenue recognition: Revenue recognition journal entries now automatically update when item income accounts change.
- Bank connections: Enhanced institution sync capabilities with support for Waycore and Westpac AU institutions.
- Stripe integration: Improved transaction display to show payment methods like ACH for better transaction visibility.
- Reporting: Re-enabled Flux report comparison options including year-over-year, year-to-date vs prior year-to-date, and rolling 12-month analyses.
- Reporting: Added ARR per contract endpoint for enhanced contract reporting capabilities.
- Period close: Added ability to lock accounting periods directly from chat interface.
- AI copilot: Added knowledge base search functionality to improve response accuracy and relevance.
- AI copilot: Improved session reliability when interrupted during the first interaction.
- Account mapping: Added sorting by transaction count to improve mapping workflow efficiency.
- Bank matching: Fixed Create & Match functionality for non-USD bank accounts that was previously failing without showing error messages.
- MCP connectors: Fixed incorrect action buttons in the connector dialog when connectors are already installed.
- AI thinking trail: Resolved flickering animation in the AI copilot’s thinking process display.
- Vendor detail pages: Fixed Activity tab not opening properly when accessed from Overview, Draft, and Archived tabs.
- Vendor credits: Corrected tab spacing alignment to match bills layout.
- Terms and payment methods: Updated status filtering to use Overview/Inactive/Archived tabs instead of confusing filter options.
- Classifications: Renamed “Archive” actions to “Delete” to accurately reflect the actual behavior.
- Brex integration: Fixed entity mapping status not properly updating when unskipping entities during onboarding.
- Fixed assets: Corrected exchange rate row alignment when validation errors are displayed.
- Bank matching: Fixed issue where manually uploaded bank statement lines disappeared after being matched.
- Archive actions: Resolved validation errors when archiving records from list views across multiple record types.
- Items: Fixed archived items not appearing in Archived tab after bulk archive operations.
- Checks: Added missing Recover action for archived records in Archived tab and detail pages.
- AI copilot: Fixed issue where remaining skills were dropped after loading one skill.
- Revenue recognition: Corrected ARR calculation errors for multi-year performance obligations.
- Bank connections: Fixed sync runs getting stuck in landing status.
- Anomaly detection: Fixed duplicate detection links that resolved to 404 errors in copied sandboxes.
- Reporting: Fixed Balance Sheet multi-company reports incorrectly showing local currency amounts instead of reporting currency.
- Reporting: Fixed issue where removing subtotals in report settings did not actually remove them from the report.
- Reporting: Fixed custom formula rows inserting in incorrect positions.
11 new features, 8 improvements, 35 fixes
New features
- Period locking from chat: You can now lock accounting periods directly through the AI copilot, streamlining the period-end close process.
- Workflow engine: New generic workflow engine enables organizations to define, validate, and execute custom workflow DAGs with detailed run and step tracking.
- Benchmark organization snapshot history: Added snapshot history view and the ability to restore specific versions of benchmark organizations.
- Paper check recovery: Archived paper checks can now be restored through a new recovery endpoint, returning them to their previous printed or not-printed state.
- Custom domain for attachments: File attachments are now served from https://cdn.dualentry.com/attachments/ instead of raw S3 URLs.
- Future posting dates validation: Added organization-level setting to control how far in the future transaction dates can be posted.
- Revenue recognition contract cutover automation: Stripe-synced contracts now automatically map their cutover date from the integration’s initial cut-off date when revenue recognition is disabled.
- Excel file export from AI copilot: The AI copilot now generates native Excel files when users request Excel or spreadsheet exports, replacing the previous text-based CSV output.
- Copilot Slack integration: Added automated feed of user questions to Slack channel for improved customer support insights.
- Enhanced flux analysis reports: Enabled previously disabled year-over-year and year-to-date comparison options in Flux Income Statement and Balance Sheet reports.
- Tool manifest database management: New database-backed tool manifest system with API endpoints for syncing, querying, and serving workflow tool definitions.
- Account mapping sorting: Account mapping pages now support sorting by transaction count to prioritize high-volume accounts during setup.
- Stripe payment method visibility: Customer payments synced from Stripe now display the payment method (ACH, card, etc.) in the memo field for better transaction visibility.
- User role bulk permission editing: Role management now includes “Select all” toggles for each permission column, allowing administrators to quickly grant or revoke permissions across all modules.
- Customer and vendor hierarchy filters: Filter dropdowns for customers and vendors now display parent-child relationships with expandable trees and “Include children” options for easier selection of related entities.
- Customer Credits visibility improvement: The Customer Credits section now only appears on contract overview pages when credits exist, reducing clutter for contracts without credits.
- Copilot product analytics: Enhanced tracking of AI copilot usage patterns through improved event capture for better product insights.
- Default AR account configuration for contracts: Contract and contract template forms now support configuring default accounts receivable accounts, with AR account editing enabled on contract-generated invoices.
- Stripe product pricing sync: Stripe Product list prices now populate in DualEntry Item records, improving pricing accuracy across subscription management.
- Bank reconciliation variance alignment: Fixed reconciliation General Ledger Balance to read from the same trusted source as legacy reports, eliminating variance discrepancies.
- Copilot session interruption: Resolved issue where interrupted first turns in chat sessions would break session data and prevent title generation.
- Invoice API performance: Optimized slow invoice queries by removing unnecessary joins from amount_due filters, reducing response times from 2+ seconds.
- Multi-year revenue recognition calculation: Fixed ARR calculation error for performance obligations spanning multiple years.
- Bank match task performance: Resolved intermittent slowdowns caused by bank match background tasks holding database locks too long.
- Multi-company Balance Sheet currency display: Fixed issue where multi-company Balance Sheets showed local currency amounts instead of converted reporting currency.
- Flux report subtotal removal: Fixed bug where removing subtotals in report settings did not actually remove them from the display.
- Custom Trial Balance formula errors: Resolved “error fetching report data” failures in custom Trial Balance reports with specific formula column combinations.
- Custom formula row positioning: Fixed incorrect insertion position for custom formula rows in reports.
- Xero migration deep links: Repaired broken hyperlinks on Xero migration data sync tabs by fixing URL encoding and making links subtype-aware.
- Bill.com vendor mapping errors: Improved error messages when Bill.com bills reference unmapped vendors, now showing vendor display names and clear remediation steps.
- Archive from list validation: Fixed “Field required” validation errors when archiving or recovering records from list views across multiple record types.
- Items archived tab visibility: Archived items now properly appear in the Archived tab regardless of their active status.
- Brex exchange rate error handling: Improved exchange rate error capture and surfacing without generating unnecessary Sentry alerts.
- Bulk import item field requirements: Fixed requiredness validation for item fields in bill imports.
- Cross-tenant isolation test: Resolved failing paper check template test by using proper organization factory methods.
- VAT and GST rate status display: Fixed issue where edit drawers for VAT rates and GST rates always showed “Active” label regardless of the actual active/inactive status.
- VAT rate description clearing: Resolved bug where clearing the description field in VAT rate edit drawer appeared to save but actually preserved the old value.
- Customer detail page navigation: Fixed issue where customer detail pages became unavailable when accessed from list view or kebab menu options.
- Copilot interrupt button errors: Resolved errors that occurred when clicking the interrupt submit button during AI copilot conversations.
- Artifacts search field clarity: Removed duplicate clear (X) icons from the artifacts search field to eliminate visual confusion.
- Report Center description field: Fixed overlapping placeholder text on the textarea border in New Package form description field.
- Deel integration connection errors: Improved error messaging for failed Deel OAuth connections to provide clearer troubleshooting information.
- Required classification validation: Fixed validation of company-required classifications for customer credits to properly check requirements when company selection changes.
- Revenue recognition Edit group button visibility: Removed inappropriate Edit group button from revenue recognition summary pages.
- Revenue recognition item name loading flash: Eliminated skeleton loading flash for item names in revenue recognition performance obligations.
- Date validation during manual entry: Fixed misleading “Date cannot be before 01/01/1990” error messages that appeared while typing future dates, now deferring validation until complete year entry.
- Column resizing in contract approval tables: Fixed Date and Amount column resizing functionality in revenue recognition contract approval workflows.
- Asset revaluation account visibility: Inactive accounts are now properly hidden from the Revaluation Offset Account dropdown in asset revaluation forms.
- Journal entry classification validation: Fixed validation of required classifications when company selection changes in journal entries.
- Vendor credit classification validation: Fixed validation of required classifications when company selection changes in vendor credits.
- Bank statement line visibility: Fixed issue where manually uploaded bank statement lines would disappear from Bank Match after being matched.
- Benchmark organization cloning: Fixed anomaly alert links in cloned organizations by properly remapping nested JSON foreign key references.
- Bill.com line customer sync: Bill.com line customer data now properly syncs to DualEntry bill lines and post-approval edits correctly trigger re-sync.
- Copilot chat resumption: Fixed missing chunks when resuming interrupted copilot sessions by ensuring database reads use the writer connection.
11 new features, 3 improvements, 12 fixes
New features
- Future date controls: Added user-configurable future date settings that let you specify the number of days ahead transactions can be dated across all modules.
- Enhanced benchmark job search: Added ability to search benchmark jobs by tier model names and tier keys in addition to primary model names and status.
- Inline citation pills: Added inline citation references within copilot responses that display contextual source information without interrupting the conversation flow.
- Account mapping transaction count sorting: Added sorting by transaction count in the migration account mapping interface to help prioritize mapping decisions.
- Other Current Liability deferral accounts: Extended item deferral account selection to include Other Current Liability account types, supporting organizations that manage deferred revenue under this classification.
- Customize Report button prominence: Made the Customize Report button more prominent in report headers to increase visibility of this powerful feature.
- System account repurposing warning: Added warning messages when editing system accounts to alert users that repurposing these accounts may cause issues.
- Enhanced authentication flow: Implemented custom domain support for authentication flows using login.dualentry.com.
- Benchmark organization snapshot history: Added ability to view snapshot history and restore specific versions of benchmark organizations.
- Data sync progress tracking: Added progress visibility for data synchronization in one-click migration flows.
- Optional prior recognized revenue: Made prior recognized amount optional for mid-life revenue cutover configurations in Revenue Recognition contracts.
- Custom fields support: Extended custom fields to Fixed Assets and Revenue Recognition Contracts, allowing you to track additional metadata specific to your organization’s needs.
- CDN domain configuration: Replaced raw S3 URLs with custom CDN domains for improved performance and branding consistency.
- Bank refresh rate limit notification: Updated bank connection refresh tooltip to clearly indicate the once-per-hour refresh limit before users encounter rate limits.
- Fixed Asset pagination: Fixed footer pagination positioning in Fixed Assets module and resolved multi-select action bar overlapping issues.
- Inbox transaction loading: Resolved infinite request loop that occurred when loading inbox transactions.
- Draft contract report links: Fixed issue where draft Revenue Recognition contracts without assigned customers incorrectly displayed report links.
- Customer payment overpayment validation: Corrected overpayment cap calculation when multiple customer payments have already been applied to the same source.
- Company creation: Restored functionality for creating new companies from the company tree interface.
- Custom report multi-company URLs: Fixed AI report generation to properly format URLs when multiple companies are selected using repeated query parameters instead of comma-separated values.
- Classification validation: Fixed validation of required company-specific classifications across Sales Orders, Invoices, Bills, Direct Expenses, and Vendor Credits.
- Bulk import column display: Resolved issue where the last column was cut off in the bulk import interface.
- Custom report permissions: Fixed archive action visibility for users without archive permissions by showing a disabled state with tooltip instead of hiding the option entirely.
- Audit log labels: Updated audit log entries to clearly indicate when operations were performed via Copilot with “X via Copilot” labeling.
- Custom field API integration: Fixed loading of Avid bill custom fields by integrating with the updated custom fields values API.
- Amortization schedule draft saving: Fixed disabled “Save as Draft” button on the Amortization Schedule edit page by properly wiring the draft action.
4 new features, 10 improvements, 12 fixes
New features
- Integration sync reliability: Enhanced Ramp reimbursement sync to prevent duplicate activity events and improved Salesforce sync retry mechanisms.
- Report migrations: Migrated tax, revenue, and trial balance reports to the new reporting infrastructure.
- Customer credit flexibility: Added support for negative values on customer credit lines.
- Benchmark organization management: Added snapshot, lock, and restore functionality for deterministic evaluation runs.
- AI Copilot improvements: Fixed customer deposit creation and improved citation streaming with real-time display during responses.
- Bulk import enhancements: Added clearer error messages for failed rows and automatic field defaulting when exchange rate equals company currency. Download links for import files now available with automatic cleanup.
- Bank reconciliation performance: Implemented bulk operations for faster reconciliation completion and improved status updates.
- One-click migration improvements: Auto-start migration imports without manual intervention and added QuickBooks Projects mapping support.
- Performance optimizations: Trimmed API response schemas for bill listings, customer payments, and vendor prepayments to improve loading times.
- Revenue recognition contracts: Migrated to contracts v2 endpoints with improved performance and data handling.
- AI Copilot responsive design: Added dropdown controls for tools and schedule options to improve layout on smaller screens.
- Bulk import template access: Added download button for bulk import templates with improved file management.
- Contract form preview: Fixed invoice loading issues and improved preview functionality in contract creation forms.
- Fixed assets transaction linking: Source transactions now display correctly when linking bills, expenses, and journal entries.
- Copilot record grouping: Fixed month grouping crash when aggregating transaction records.
- Bank reconciliation status: Resolved issue where reconciliation status wasn’t updating to “Reconciled” after completion.
- Search functionality: Added case-insensitive search for customer records.
- Organization cloning: Fixed false errors during clean organization copies and improved reference resolution.
- Period lock validation: Completed cleanup of legacy period lock check implementations.
- Flux analysis accuracy: Improved multi-account analysis tools and resolved incorrect net income calculations.
- Transaction status display: Fixed matched status not showing on matched bank transactions.
- Classifications validation: Required classifications now properly validate company scope for cash sales forms.
- Table sorting: Fixed default sort application on table load and improved sort indicator display for visible columns.
- File downloads: Resolved download button functionality across attachment and import interfaces.
- Bulk import error handling: Improved error messages and made duplicate validation errors actionable.
- Classifications display: Corrected required column indicators to properly reflect company-specific rules.
2 new features, 6 improvements, 10 fixes
New features
- Report processing interruption: Stop report processing mid-run and return to editable filter state instead of waiting for completion. A Stop button appears in the loading overlay while reports are processing.
- Revenue recognition obligations view: New streamlined view for managing revenue recognition obligations with improved usability for creating and updating obligation records.
- Expanded scheduling options: Scheduled agents can now run on daily, weekly, and monthly intervals in addition to hourly and minute-based schedules. New scheduled agents default to daily frequency for better alignment with finance workflows.
- Enhanced Copilot panel width: The embedded Copilot sidebar now opens at 560px width by default, providing better visibility of content without horizontal scrolling.
- Improved interrupt response flow: Press Enter to submit responses in Copilot interrupt dialogs, matching the behavior of the main chat prompt. Shift+Enter still creates new lines in multi-line responses.
- Customer credit negative line items: Customer credit line items now support zero and negative rates, providing more flexibility for adjustments and corrections.
- Streamlined tax rate filtering: Source filters on tax rate pages now use radio buttons instead of checkboxes for clearer single-selection filtering.
- Conditional required field hints: Bulk import forms now display hint icons for fields that become required based on other field values, providing clearer guidance during data entry.
- Close checklist status filter: Fixed status filter options to show Overdue, Not started, In progress, and Completed statuses that match the displayed checklist progress.
- Copilot report adjustments: Adjusting generated reports in Copilot chat now keeps the conversation open instead of redirecting to the Copilot landing page.
- Artifact type filter switching: Fixed artifact type filters to allow direct switching between types (Chart, Report, etc.) without requiring selection of “All” first.
- Schedule field alignment: Aligned schedule input fields and labels in the new scheduled agent drawer for consistent layout and spacing.
- Customer credit description field: Removed incorrect required field indicator from customer credit description field to match validation requirements.
- Report row hover highlighting: Fixed hover highlighting to properly highlight pinned columns alongside regular columns when hovering over report rows.
- Vendor payment column visibility: Applied Amount column in vendor payment forms is now always visible and cannot be hidden from the column picker.
- Related records tab performance: Improved performance of related records tabs by migrating to optimized data fetching for multiple record displays.
- Copilot message streaming: Fixed message streaming behavior in Copilot conversations to ensure reliable delivery of AI responses.
- Bulk import user experience: Enhanced bulk import workflows with improved error handling and validation feedback for better data entry experience.
5 new features, 1 improvement, 24 fixes
New features
- 1-click migration: Streamlined migration process for sandbox environments that automatically routes to the Migrations page after entity setup.
- Embedded AI copilot on report view: AI assistance is now available directly within report pages to help answer questions about your data.
- ADP payroll integration reconnection: Added the ability to reconnect ADP and other HRIS integrations through Finch without losing existing mappings or configurations.
- QuickBooks Projects migration support: Added mapping tab for QuickBooks Projects during migration to DualEntry.
- Customer list country filtering: Customer lists can now be filtered by country for easier organization management.
- Performance obligation change orders: Performance obligation headers now display prorated amounts and quantities when change orders are applied to revenue recognition contracts.
- Currency revaluation recurring edits: Fixed the edit functionality for recurring currency revaluations, preventing disabled edit mode and resolving URL issues when accessing edit screens.
- Customer address auto-population: Customer address details now automatically populate when creating sales orders, cash sales, and credit forms.
- Tax rate table column naming: Renamed “System” column to “Source” in GST and VAT rate tables for clearer identification.
- Bill creation system errors: Resolved decimal precision issues that were preventing bill creation in certain cases.
- Customer credit form rendering: Fixed display issues in the new customer credit form that were preventing form rendering.
- AI copilot classification saves: Fixed issue where AI copilot could not save classification drafts when no parent classification was selected.
- AI copilot formatting in cards: Human-in-the-loop interrupt cards now properly display markdown formatting including bold text, lists, and paragraph breaks.
- AI copilot documentation link: Fixed non-functional “Learn more” link on the Accounting Copilot home page to properly open AI documentation.
- AI copilot artifact display: Copilot artifacts no longer automatically open in fullscreen mode from the sidebar chat, requiring an explicit click to expand.
- Bulk import filtering: Fixed missing import types (Customer Deposit, Invoice, Cash Sales, Fixed Assets) in the bulk imports filter dropdown.
- Close checklist template updates: Template names now update immediately in the list after renaming without requiring a page refresh.
- Customer deposit account selection: Fixed issue where DualEntry payout account dropdown became unavailable after unskipping Stripe payout mapping items.
- Custom trial balance reports: Fixed “error fetching report data” when generating custom Trial Balance reports with Last Month and variance columns.
- AP aging report display: Fixed layout issues where AP aging settings popover did not fit properly on screen.
- GST and VAT rate filtering: Fixed country list filtering functionality on GST and VAT rate pages to properly support search and selection.
- Customer deposit item selection: Improved performance and reliability of depositable items loading in customer deposit transactions.
- Bulk action bar positioning: Fixed positioning of bulk action bar in organization management to remain fixed at footer instead of appearing directly below the list.
- Archive action validation: Fixed “Field required” validation errors when archiving records from list views across customers, bills, items, and other record types.
- Customer archive and recover modals: Archive and recover confirmation modals now close automatically after successful completion on customer details pages.
- Save as Draft button visibility: Removed inactive “Save as Draft” button from create forms for items and classifications that do not support draft functionality.
- Migration page routing errors: Fixed NotFoundError issues when navigating to migration mapping steps.
- Bulk import field mapping: Fixed issue where mapping additional fields would mis-bind grouping columns and cause validation errors.
- Close template creation modal: Fixed required field indicator missing on mandatory Template Name field in new template creation modal.
- Custom fields authentication errors: Resolved authentication errors when fetching custom fields that were causing frontend failures.
5 new features, 7 improvements, 31 fixes
New features
- Enhanced rate precision: Increased rate field precision to 10 decimal places for bills and invoices, with adaptive display formatting that shows 2 decimal places by default and extends to full precision when needed.
- 2FA reset for administrators: Added ability for administrators to reset two-factor authentication for users in the management console with success and error feedback.
- Migration completion notifications: Users now receive email notifications when data migrations from QuickBooks Online or Xero finish, whether successful or failed, with direct links back to the Data Sync page.
- AI copilot session debugging: Added management command to export complete AI copilot conversation history for troubleshooting and analysis.
- Contract billing separation: Split billing and recognition schedules into separate configuration options for more flexible contract management.
- Improved import result details: Enhanced bulk import result modals with more detailed step information for better visibility into the import process.
- Contract performance obligations: Added item name field to contract performance obligations in the V2 API for better tracking and identification.
- Contract approval workflow data: Contract details in the V2 API now include complete approval workflow information.
- Income statement and balance sheet report improvements: Migrated income statement and balance sheet reports to enhanced infrastructure for better performance and reliability.
- Sandbox session alerts: Added enhanced Slack notifications for sandbox logins with user details and PostHog session replay links for better monitoring.
- AI copilot embedded reports: Enhanced AI copilot with contextual information from reports for more accurate and relevant responses.
- Improved organization copying: Upgraded organization duplication system with more reliable cloning engine for better setup consistency.
- Customer payment sorting: Fixed ability to sort customer payments by unassigned amount column.
- Profile picture uploads: Fixed failure when cropping large PNG files by improving blob URL handling and capping output at 512px for reliable processing.
- Currency field validation: Prevented base currency field from stretching when company validation errors appear on recurring currency revaluation forms.
- Contract navigation: Fixed browser back navigation from contract templates that incorrectly redirected to previously opened modules instead of the contract list.
- Fixed asset breadcrumbs: Fixed depreciation detail breadcrumb links that pointed to invalid tabs and rendered blank pages.
- Quantity validation: Added validation to reject decimal quantities on purchase orders, sales orders, bills, cash sales, and invoices where only whole numbers are appropriate.
- Report filtering: Restored missing filter controls in reports view that disappeared after client-side filter migration.
- System account merging: Fixed chart of accounts merge functionality to properly show system AR/AP accounts as merge targets.
- List pagination: Fixed pagination footer positioning that was locked mid-table when scrolling through long item lists.
- Report column flashing: Eliminated incorrect total column flash on initial report render by fixing server-client hydration mismatch.
- Currency filter mapping: Fixed currency search parameter mapping to properly use transaction_currency field in API calls.
- Bulk Import reliability: Fixed multiple issues with Bulk Import V2 including customer deposit creation failures, duplicate record handling, and field mapping errors across various transaction types.
- Bank connection stability: Resolved issues where newly opened bank accounts weren’t appearing for mapping and fixed transaction dropping on high-volume Chase accounts through Plaid.
- Chart of Accounts validation: Fixed bug where parent account validation used stale data when account type and parent were changed simultaneously.
- Close checklist filtering: Fixed status filter options and functionality in close checklists.
- Period lock enforcement: Strengthened period lock validation across all transaction creation and editing workflows.
- Integration mapping preservation: Fixed issues where Stripe payout account mappings and Finch payroll mappings were being lost.
- Balance Sheet accuracy: Corrected foreign exchange translation calculations that caused balance sheet values to change incorrectly when adjusting date ranges.
- Customer payment data structure: Improved backend data handling for customer payments by consolidating open transaction tabs onto a unified endpoint.
- Empty state centering: Fixed centered alignment of empty and loading states in transaction lists and detail views.
- Validation message consistency: Fixed inconsistent validation message colors in new amortization schedule forms to match design standards.
- Bulk import error messages: Improved error messages in bulk import results to show clear, user-friendly descriptions instead of technical validation errors.
- Custom report archiving: Fixed server errors when archiving custom reports by properly handling background indexing operations.
- Plaid task discovery: Fixed issue where bank connection sync tasks weren’t being processed after system refactoring, preventing transactions from updating properly.
- Integration API performance: Resolved database query inefficiencies on integration transaction endpoints that caused slow response times.
- Customer statement status filtering: Fixed customer statements status filter to properly align with list column values, showing Outstanding, Zero Balance, and Paid options instead of Posted/Archived.
- Item name field display: Fixed UI breaks when entering extremely long text in item name fields by improving text wrapping and layout handling.
- Reconciliation data migration: Enhanced reconciliation data handling by migrating to React Query for better performance and reliability.
- AI copilot response accuracy: Fixed AI copilot from inventing premises not provided in user queries and improved response synthesis to prevent delegated sub-agent responses from appearing verbatim.
- Bulk import field mapping: Fixed missing required fields in bulk import mapping for recurring invoices, ensuring all frequency options are properly surfaced.
- API query optimization: Resolved database query performance issues that caused slow response times on journal entry endpoints.
6 new features, 3 improvements, 36 fixes
New features
- One-click migration: Added streamlined migration path for sandbox organizations that automatically creates accounts, skips zero-transaction accounts, and advances to data sync without manual configuration steps.
- Retained Earnings posting: Enabled direct posting of journal entries to Retained Earnings equity accounts, with automatic reconciliation against computed figures on financial statements.
- Period lock enforcement: Extended period lock protection to all transaction creation and modification paths, preventing any transaction from being saved into locked periods.
- Bulk import child item updates: Re-importing records now updates child items like classification selections to match the uploaded file, adding new selections and removing dropped ones.
- Customer Payment column reordering: Added drag and drop functionality to reorder columns in the Customer Payments list view.
- Integration audit logs: Added comprehensive audit trail tracking for all integration activities and sync events, accessible through a dedicated activity drawer.
- Cash Flow Statement migration: Migrated Cash Flow Statement to the new reporting framework with improved performance and functionality.
- General Ledger report migration: Migrated General Ledger report to the new reporting framework with enhanced features and better user experience.
- Report detail view column drag and drop: Reports now support dragging column headers to reorder columns in detail view, with changes automatically saved to your preferences.
- Finch mapping preservation: Fixed issue where user-configured field mappings were lost during bulk updates, ensuring custom mapping configurations persist across sync operations.
- Bulk import classification matching: Improved classification name matching in bulk imports by adding exact name alias support for more accurate record matching.
- Customer deposit field handling: Fixed field validation and processing for customer deposits in bulk import operations.
- Fixed asset required fields: Updated bulk import to properly mark required fields for fixed asset records, preventing incomplete imports.
- Account type validation: Fixed Chart of Accounts validation when changing account type and parent account in a single save operation.
- API error messages: Replaced technical database constraint errors with user-friendly messages across all API endpoints for better error handling.
- Close checklist filtering: Added progress status filter to Close Checklists with proper status options (overdue, not started, in progress, completed) that match displayed statuses.
- Bank connection sync: Fixed transaction sync cursor persistence and implemented backfill capability for Plaid connections to resolve transaction gaps.
- Inbox contract display: Fixed Customer/Vendor column in transaction approval queue to properly display contract customer names instead of showing blank values.
- Integration field preservation: Fixed issue where target type IDs were not preserved during integration updates, ensuring field mappings remain intact.
- Plaid account discovery: Enabled account selection parameter during Plaid connection updates to ensure newly discovered accounts appear upon reconnection.
- Contract cadence deprecation: Removed deprecated contract-level cadence fields from business logic while maintaining backwards compatibility.
- Customer and vendor validation: Relaxed phone field length limits and address validation requirements to accommodate external integration data from systems like Salesforce.
- Recurring invoice imports: Restored bulk import update functionality for recurring invoices, preserving existing invoice details during updates.
- Purchase order migrations: Restored match keys and defined reference number fields for purchase order migration processes.
- Customer deposit multi-row import: Enhanced customer deposits to support multi-row import records, allowing multiple item rows to collapse into a single deposit.
- Ramp integration reliability: Improved Ramp integration to handle transaction retries and ignore archived records properly.
- Organization cloning: Fixed production organization clones by scrubbing external bank identifiers that were causing unique constraint violations.
- Allocation Schedule status display: Fixed issue where status label remained “Active” after switching the toggle to inactive state.
- Required field indicators: Added missing asterisk (*) indicators to mandatory fields across Item Receipts, Item Fulfillments, Locations, and Company payment information forms.
- Actions column visibility: Restored missing kebab menus in the Actions column for Checks archive tab, Transactions approval queue, Bills, and Vendor Prepayments lists.
- Field alignment on validation errors: Fixed form field alignment issues that occurred when validation errors appeared, particularly in Vendor Refund and Direct Expense forms.
- Search functionality: Resolved issue where Invoice search displayed “No matching Invoices found” despite records existing.
- Column sorting: Enabled sorting by Amount Paid, Amount Due, and Remaining Amount columns on Bills and Vendor Prepayments lists.
- Company drawer navigation: Fixed incorrect company drawer behavior on record list pages to use proper full-page navigation instead.
- Modal layering: Resolved issue where New Template and Rename modals opened behind the Templates side drawer in Close Checklist.
- Customer Statement date validation: Added validation to ensure Statement Date falls within the selected period range and fixed balance calculations for statements with dates before period end.
- Migration analysis error messages: Improved error display during file analysis to show user-friendly validation messages instead of technical error traces.
- List refresh after creation: Fixed issue where newly created Nexuses did not appear in the list until manual page refresh.
- Report input validation: Fixed textarea border highlighting to show validation errors on all four sides in Report Center.
- Company filtering: Restored company filter functionality on Locations list page.
- Field placeholders and labels: Corrected misleading placeholders and labels across multiple forms, including changing “Memo” to “Description” in Direct Expense line items and simplifying headings for Item Receipts and Fulfillments.
- Fixed asset pagination: Fixed pagination section positioning to remain properly anchored at the footer in Asset Disposals and Asset Revaluations when record count is low.
- Item record persistence: Fixed issue where edits to archived Item Receipts and Fulfillments were not persisting after refresh, and subsequent edits would fail completely.
- Invoice column sorting: Enabled sorting by Amount Paid column in the Invoices list view.
- Task name validation: Fixed task name field validation to use Formik validation instead of browser validation and prevented password manager autofill interference.
6 new features, 2 improvements, 11 fixes
New features
- AI Copilot plan mode: Added a new planning agent accessible through the /plan command that decomposes complex tasks into step-by-step plans with approval gates.
- Public API enhancements: Added parent_account_id to accounts responses and exposed transaction IDs for journal entries and bank transfers to support bank matching integrations.
- Billing data in Copilot: Enhanced the AI copilot to include invoice line item details when retrieving billing records by number.
- Period close status tools: Added new close management tools to help users track what’s left to complete for month-end and quarter-end closing processes.
- Benchmark testing suite: Added automated nightly benchmark runs with Slack alerts for performance regression detection.
- Superadmin session replay: Added enhanced security controls for administrative session review with dedicated role permissions and audit logging.
- Bulk import improvements: Extended bulk import to support classifications, fixed asset depreciation conventions, and improved handling of multi-company custom fields.
- Enhanced citation system: Improved AI copilot citations with better parsing and history replay support.
- Bank transaction signs: Corrected transaction amounts in bank connections to preserve proper debit/credit signs.
- OCR bill creation: Fixed empty responses when creating bills from uploaded PDF invoices through the AI copilot.
- User count display: Resolved mismatch between overview and active user counts on company people pages.
- Multi-currency FX rates: Fixed missing foreign exchange conversion in MRR and SaaS metrics for organizations using multiple currencies.
- Bulk import validation: Fixed various bulk import issues including account upserts, custom field scoping, and expense field requirements.
- Performance improvements: Eliminated N+1 database queries in bank matching AI processes and optimized organization cloning for large datasets.
- Integration reliability: Fixed Brex bill synchronization, Zoho duplicate detection, and improved error handling across multiple integration connectors.
- Transaction monitor performance: Improved memory usage for AI anomaly detection by processing transactions in batches instead of loading all transactions at once.
- Sandbox provisioning: Fixed data collision issues during organization cloning that could cause setup failures.
- Allocation schedule redirects: Fixed issue where clearing mandatory dropdown fields in allocation schedules caused page navigation errors.
- Contract invoice AR accounts: Enhanced configuration options for default accounts receivable accounts used in contract invoicing.
5 new features, 4 improvements, 11 fixes
New features
- Benchmark job filtering: Added server-side filtering to the benchmark jobs list with dynamic field discovery and persistent URL state.
- Per-organization sync scheduling: Added the ability to configure custom sync schedules for individual integrations, giving you more control over when data syncs occur.
- Import job file downloads: Added developer tools to download original bulk import files for troubleshooting and auditing purposes.
- AI planner agent: Added dedicated planner agent for multi-step workflow planning with visual plan cards and approval workflow. Access through the /plan command in chat.
- Superadmin session replay: Added session replay functionality for superadmin accounts to review user interactions and troubleshoot issues more effectively.
- Customer prepayment applications: Streamlined the open invoices selection process by migrating to a shared endpoint for better performance.
- Enhanced real user monitoring: Upgraded Datadog RUM integration for improved performance tracking and debugging capabilities.
- Payroll accruals improvements: Added related journal entries as linked records and removed headcount fields for cleaner payroll accrual workflows.
- Enhanced task planning UI: Added visual task plan cards that display plan steps with risk indicators and integrated approve/reject actions for better workflow management.
- Location status labels: Fixed status toggle labels to correctly display “Active” or “Inactive” instead of always showing “Active”.
- Revenue recognition tax display: Fixed tax amount extraction from summary tables in revenue recognition workflows.
- Archived usage lines: Resolved issue where archived usage lines were incorrectly appearing on invoices.
- Amortization schedule messages: Fixed incorrect success toast messages for archive and recover actions in amortization schedules.
- Contract template empty state: Fixed page reload error when clicking obligations count with value “0”, now properly handles empty states.
- Bill payment validation: Fixed validation error that incorrectly required bank account credits greater than $0 for partial bill payments via journal entries.
- Classifications list refresh: Fixed issue where the classifications list didn’t update after creating or editing records without a page reload.
- People page footer: Fixed footer positioning on the People page to properly stick to the viewport bottom.
- Reconciliation footer: Fixed bottom bar positioning on reconciliation pages when the transaction list has few items.
- Description field validation: Fixed validation toast message to correctly reference the Description field instead of the Memo field when character limit is exceeded.
- Classifications table layout: Fixed alignment and sizing of the actions column in the classifications list for consistent layout.
2 new features, 4 improvements, 7 fixes
New features
- Superadmin session replay: Internal support can now view and replay AI Copilot sessions across organizations for troubleshooting purposes.
- Contract invoice pagination: Added paginated invoice listing with tax amount calculations for contract overview pages.
- AI Copilot session grouping: Chat sessions now display as unified workflows in monitoring dashboards, making it easier to track multi-turn conversations and debug issues.
- Citation protocol: AI Copilot responses now include structured citations linking back to source records, improving transparency and auditability.
- Waycore sync improvements: Banking integrations now perform initial historical syncs alongside regular incremental updates for more complete data coverage.
- Search performance optimization: Invoice search now pre-filters by company in the search index before applying database filters, improving response times for large datasets.
- Bulk import duplication: Fixed issue where re-importing data would create duplicate records and double-post transactions.
- Payroll accrual reversals: Corrected post-save reversal logic for payroll accrual entries and their related record chains.
- Bedrock temperature errors: Resolved validation errors when using temperature settings with Claude Opus models on AWS Bedrock.
- Query agent fallback: Legacy query fallback now uses the complete domain-aware prompt instead of the limited SQL-only version.
- Classification ordering: API responses for required company classifications now return in consistent order.
- Zoho integration search: Fixed search functionality in Zoho invoice mapping that was returning no results for valid invoice numbers.
- Banking connection sync: Improved sync reliability for banking connections in pending activation state that may have missed webhook notifications.
7 new features, 6 improvements, 25 fixes
New features
- Bulk Create & Match enhancements: Added support for rule-driven items alongside suggestion items in bulk operations, with individual success/failure handling per item.
- Avalara integration improvements: Exposed “allow push” settings for Avalara tax integrations and enhanced audit logging for tax calculation requests and responses.
- Bulk import V2 enhancements: Added asynchronous full-file validation and support for required organization classifications in journal entry imports.
- Copilot artifact optimization: Report viewing now skips duplicate artifact creation when users are already on the relevant report page.
- Bank transfer management: Introduced streamlined bank transfer list views with optimized API responses for better performance.
- Plaid OAuth flow: Added OAuth callback and resume flow support for Plaid banking integrations.
- Bulk import type filtering: Unsupported bulk import types are now hidden when V2 is enabled for a cleaner user experience.
- Contract tax calculation: Contracts now support frontend-supplied VAT and GST tax rate selections for more precise tax calculations.
- Search improvements: Enhanced search functionality to ignore result ordering for more flexible query matching.
- Sandbox provisioning: Enhanced auto-provisioning with improved lifecycle management and data wiping during migration.
- Amortization reporting: Added vendor names to amortization and asset schemas for better reporting visibility.
- Revenue recognition BFF queries: Moved contract and related entity fetching to backend-for-frontend queries for improved performance.
- Customer transaction handling: Enhanced customer prepayment applications, refunds, and credits with improved list and detail view schemas.
- Multi-currency bank reconciliation: Create & Match now works correctly for non-USD bank accounts by filtering candidates by transaction currency.
- Copilot skill invocation: Fixed user-authored slash commands being ignored by the LLM due to incorrect provenance handling.
- Bulk import configuration: Corrected match key configurations for bills, invoices, direct expenses, cash sales, and recurring invoices in bulk import V2.
- Payroll integration recovery: Fixed Finch integration reconnection flow for ADP, Justworks, Paychex, Paycom, Gusto, UKG Ready, and Deel by properly handling authorization codes.
- Integration error recovery: Resolved issue preventing automatic recovery from transient integration errors.
- Invoice payment filtering: Fixed “Paid” status filter incorrectly showing invoices with “Unpaid” status by excluding zero-amount records.
- Stripe integration links: Corrected Direct Expense links from Stripe integration to properly navigate to expense records.
- Dashboard date controls: Fixed date range selector not updating dashboard widgets correctly.
- Purchase order approval workflow: Draft purchase orders in approval workflows now properly disappear from the Draft tab while remaining in For Approval.
- Brex card refunds: Card expense refunds now create proper vendor refunds that apply credits and debit credit card accounts.
- Salesforce contract source: Contracts created via Salesforce integration now correctly show “Salesforce” as source instead of “Manual”.
- API schema compliance: Updated OpenAPI 3.1 schema to use union types instead of deprecated nullable syntax.
- Performance optimizations: Resolved multiple N+1 query issues and improved bulk operations performance.
- Allocation schedules validation: Fixed description field validation error that incorrectly referenced memo field instead of description.
- Bulk import display: Corrected CSS styling issues in the second column of bulk import error messages.
- Journal entry amounts: Fixed journal entry list views to display list amounts directly instead of incorrectly summing line item debits.
- Character limit handling: Item memos are now capped at 512 characters and expense descriptions at 256 characters to prevent data truncation errors.
- Amortization activity tab: Fixed empty state display in amortization schedules activity tab to properly show activity records.
- Bulk import journal entry counting: Bulk import now correctly reports success and failure counts at the journal entry level rather than line item level.
- Organization switching: Fixed integration provider pages displaying “Page unavailable right now” error when organization switching fails.
- Customer and vendor stats: Outstanding balance calculations now source data correctly from dashboard preview endpoints.
- Amount column alignment: Fixed amount columns in detail list views to align left for better readability.
- Approval workflow styling: Removed unnecessary container box from completed approval steps and added proper width constraints.
- Management tab pagination: Activity and Bank Connections tabs now use persisted page size preferences instead of hardcoded values.
- Copilot flat table display: Hidden columns are now completely removed from flat table displays and record numbers display properly with hyperlinks.
2 new features, 3 improvements, 11 fixes
New features
- Standardized export buttons: Unified export button styling and behavior across reporting pages and project-wide components for a more consistent user experience.
- AI evaluation case management: Enhanced AI evaluation workflow with tag-based organization for benchmark creation, editing, and running evaluation cases.
- Amortization vendor/customer display: Added vendor and customer fields to amortization overview, schedules, and monthly entries for better visibility into contract relationships.
- Sandbox provisioning improvements: Enhanced sandbox environment management with updated lifecycle controls, improved conversion modal, and streamlined migration workflow that takes users directly to onboarding after acceptance.
- Direct expense validation: Improved bank amount validation with clearer error messages and better field alignment in multi-currency mode for direct expenses.
- View mode default tabs: Fixed readonly forms to automatically open the first populated tab instead of defaulting to empty sections, improving user experience when viewing bills, vendor credits, customer deposits, and payments.
- Onboarding company name validation: Added validation to prevent users from finalizing setup with empty company names, which previously caused backend errors.
- Import mapping error messages: Fixed generic “Error updating mapping” messages to display specific backend validation details, making it easier to identify and resolve mapping issues.
- Invoice PDF tax display: Fixed tax registration numbers (VAT, GST, PST) not appearing on invoice PDFs by adding proper fallback to legacy tax fields.
- Table layout stability: Resolved table size and alignment issues that occurred when backend exceptions were encountered.
- Server action size limits: Increased NextJS body size limit for server actions to prevent “Body exceeded 1 MB limit” errors.
- Transaction retry error handling: Added proper error display when transaction retry operations fail, providing users with actionable feedback.
- Form action button loading states: Fixed form action buttons to display individual loading indicators instead of affecting all buttons simultaneously when one action is in progress.
- Report export error handling: Improved error handling for report exports to prevent system alerts when temporary API issues occur.
- Financial connection sync feedback: Enhanced error messaging when financial connection sync operations fail, providing clearer user feedback instead of generic error displays.
- Archive operation payload optimization: Optimized bulk archive operations to prevent system errors when processing large numbers of intercompany journal entries.
5 new features, 6 improvements, 9 fixes
New features
- New AI Agents sidebar: Added a redesigned sidebar for easier access to AI automation tools and agents throughout the platform.
- Enhanced accounts mapping: Added filtering by DualEntry account type and column sorting to the accounts mapping table, making it easier to organize and find specific accounts during setup.
- Keyboard shortcut for new agent: Added a keyboard shortcut to quickly launch a new AI agent conversation from anywhere in the platform.
- Resizable total column in reports: The Total column in summary reports can now be resized and maintains your preferred width across sessions.
- Customer deposit management: Added support for tracking and managing customer deposits within the accounts receivable workflow.
- Year-to-date reporting default: Reports now default to year-to-date view instead of month-to-date, providing a fuller picture of your financial data when opening reports.
- Embedded copilot on record views: The AI copilot now appears directly on individual record and entity pages, providing contextual assistance without leaving your current work.
- Bank connection country information: Bank connections now display the primary country code, making it easier to identify and organize international banking relationships.
- Vendor prepayment application: Enhanced vendor prepayment functionality with improved application tracking and management capabilities.
- Improved bulk import logging: Import processes now provide more detailed logs to help track the status and results of bulk data operations.
- Multi-row record imports: Bulk import now supports records that span multiple rows, including purchase orders, journal entries, intercompany journal entries, and customer/vendor prepayment applications.
- Custom report changes now save immediately: Fixed an issue where changes to custom reports weren’t reflected on screen after saving until navigating away from the page.
- Fixed integrations bottom bar positioning: The bottom action bar in integrations now stays fixed at the bottom of the screen instead of scrolling with the table content.
- Copilot scrolling restored: Fixed a regression where the main copilot page couldn’t scroll to view the full chat conversation.
- Mapping table performance improved: Resolved lag issues in the accounts mapping table and fixed stale UI updates after performing bulk actions.
- Search popover rendering optimized: Improved search performance by preventing unnecessary full remounts when search values change.
- Amortization status accuracy: Fixed amortization schedules to correctly show “Fully Amortized” status when the remaining balance reaches zero instead of showing “Active”.
- Report column spacing: Reports no longer leave blank space on the right when displaying only a few columns, with available space now distributed evenly across all columns.
- Aging report drill-down accuracy: Fixed an issue where clicking “No Vendor” on AP Aging or “No Customer” on AR Aging returned incorrect or empty detail reports.
- Bulk import validation improvements: Enhanced validation for vendor and customer imports to recognize standard column headers and provide clearer error messages for missing required columns.
4 new features, 3 improvements, 8 fixes
New features
- Salt Edge bank connections: Added support for EU and UK bank connections through Salt Edge integration, including transaction sync and widget connection flow.
- Bulk import error logs: Downloadable CSV error logs are now available for bulk import failures, making it easier to identify and resolve import issues.
- Customer and vendor assignment in bulk imports: Added optional Item Customer and Item Vendor columns to Bill and Direct Expense bulk import templates for line-level assignment.
- Revenue recognition filtering: Added recognition strategy filter to obligations list and usage obligations field to contract schema.
- Amortization vendor tracking: Added optional vendor field to amortization entry records for better expense tracking and reporting.
- Personalized copilot suggestions: AI copilot now provides personalized suggestions based on your recent activity, with an expanded 5-day activity window for better recommendations.
- Enhanced bulk import validation: Improved validation for multi-row records and added chunked processing for large file imports.
- Stripe subscription archival: Fixed issue where active subscriptions with reversed cancellations were incorrectly archived due to stale cancel_at timestamps.
- Brex account deactivation: Resolved issue where GL accounts were repeatedly getting disabled after being manually enabled during reconnection.
- HubSpot custom line items: Fixed import failures for HubSpot deals containing custom ad-hoc line items.
- QuickBooks migration vendor credits: Improved vendor credit creation during migration when vendor cannot be determined from journal entries.
- Journal entry reversal: Fixed blocking issue when unlinking journal entry reversals with existing bank-match links.
- Bank match rule parameters: Preserved check_number and expense_description parameters in bank match rule API responses.
- Bulk import date formats: Added support for ISO 8601 date formats in CSV imports for better compatibility.
- Bulk import header matching: Improved column header and enum value matching during import mapping.
1 new feature, 5 improvements, 3 fixes
New features
- Import job processing reliability: Added automatic retry logic when previewing bulk import files to handle processing delays and provide better error feedback.
- Field mapper UI improvements: Updated the bulk import field mapper interface to match the latest design with improved layout and visual consistency.
- Tab subtotals: Added subtotal amounts to tab headers in Bill, Vendor Credit, Customer Deposit, and Customer Payment entry forms for better visibility of totals.
- Resizable report columns: Financial reports (Balance Sheet, Income Statement, Custom Reports) now support user-resizable column widths with drag-to-resize functionality and double-click auto-fit.
- AI copilot redesign: Updated the chat interface with a new UI design for improved user experience.
- Salt Edge bank connection: Enhanced bank connection flow with iframe-based authentication for Salt Edge providers and improved handling of user cancellation scenarios.
- Journal entry toast notifications: Fixed missing success toast messages when creating new accounts from the journal entry page.
- Bank match info icon alignment: Corrected the positioning of info icons in bank description cells to maintain consistent right alignment across all rows.
- Error handling improvements: Enhanced error handling for network connectivity issues and improved reliability when the backend is temporarily unavailable.
11 new features, 6 improvements, 20 fixes
New features
- AI Copilot integration: The AI copilot now appears directly on record and entity view pages, providing contextual assistance while you work with your data.
- Copilot skill versioning: View version history for custom copilot skills and scheduled agents, with the ability to preview, restore, or archive previous versions.
- Chat session sharing: Share copilot chat sessions with your organization or keep them private, with clear visibility indicators and shared session management.
- Plan and execute mode: New AI copilot capability that breaks down complex tasks into steps and executes them automatically using your accounting data.
- Vendor prepayments: Create and manage vendor prepayment records to track advance payments to suppliers.
- Vendor credits: Process vendor credit memos and apply them against outstanding balances.
- Direct expense recording: Create direct expense entries without requiring a bill or payment workflow.
- Items list export: Export your items list with full filtering and selection options to CSV or Excel formats.
- Sandbox auto-provisioning: One-click sandbox environment creation with automated data copying and lifecycle management.
- Salt Edge banking integration: Connect EU and UK bank accounts with automated transaction sync and backfill capabilities.
- Plaid OAuth support: Enhanced Plaid integration with OAuth flow support for secure bank account connections.
- Enhanced bulk import: Redesigned bulk import interface with improved field mapping, validation feedback, and support for both V1 and V2 record formats.
- Subsidiary management: Enhanced subsidiary creation workflow with improved relationship mapping between parent and child entities.
- Customer reporting improvements: Unified customer dimension in reporting with improved aggregation and cross-module visibility.
- Enhanced skills management: Updated skills page interface with improved navigation and skill management capabilities.
- AI tools interface improvements: Redesigned tools page with streamlined workflow management and tool configuration options.
- Personalized recommendations: User-specific recommendations now appear in relevant sections based on your usage patterns and account setup.
- Copilot display issues: Resolved issue where embedded copilot appeared blank in certain production environments.
- Spotlight Search: Fixed bug where spotlight search failed to open new copilot chat sessions.
- Billing validation: Corrected frontend billing logic that failed for contracts without end dates due to validation errors.
- Vendor payment processing: Improved transaction picker for vendor payments using updated backend endpoints for better performance and reliability.
- Contract archive cascading: Fixed issue where archived contracts from Stripe integrations weren’t properly cascading to related revenue recognition records and invoices.
- Stripe revenue recognition: Resolved issue where contracts scheduled to cancel weren’t properly reflected as active in revenue recognition processing.
- Organization copy reliability: Improved handling of single-object relations during organization copying operations.
- QBO migration vendor handling: Bill payments with missing vendor mappings now automatically route to an “Unknown Vendor” placeholder instead of failing.
- Salt Edge webhook processing: Enhanced error handling for unknown webhook stages to prevent service disruptions.
- Bulk import entity support: Extended bulk import validation to properly handle entity record types and reference mapping.
- Departments mapping completion: Improved clarity for departments mapping completion status during onboarding workflows.
- Reconciliation editing: Fixed issue where editing existing reconciliations required a later date selection unnecessarily.
- Chart of Accounts performance: Migrated data flows to improve loading performance and responsiveness.
- Dashboard reliability: Enhanced error handling when organization settings are temporarily unavailable to prevent dashboard crashes.
- Integration data sync: Improved error handling for integration pages when backend services are temporarily unavailable.
- Error page functionality: Fixed refresh button behavior on error pages to ensure consistent reload functionality.
- Bill creation retry protection: Added safeguards to prevent duplicate bill creation when users retry after network errors.
- Customer statement creation: Enhanced error handling to prevent duplicate customer statements during retry scenarios.
- Customer deposit processing: Improved retry logic for customer deposit creation to prevent duplicates during network issues.
- Authentication error handling: Better handling of unauthorized access scenarios with clearer error messages.
14 new features, 4 improvements, 18 fixes
New features
- AI Copilot report control: The embedded copilot now updates report filters in real-time when modifying report views through chat, keeping the report viewer and copilot in sync.
- Audit trail from chat: Access complete record change history directly from the AI copilot. Ask about any record’s audit trail and get a clear table of changes including timestamps, users, and before-and-after values.
- Bank Match from chat: The close management agent can now apply bank matching suggestions directly from chat, streamlining the reconciliation workflow.
- PATCH API endpoints: Added PATCH support for Invoice, Bill, and Customer Payment endpoints, allowing partial record updates without sending complete payloads.
- Reference number for invoice imports: Added Reference Number column to the bulk invoice import/update template, matching the capability already available for bills.
- Enhanced integration error handling: Better error surfacing for Ramp sync operations and improved handling of unmanaged classification mappings.
- Web search in Copilot: The AI copilot can now search public web sources when internal information is insufficient, with clear citation of external sources.
- Enhanced Copilot context: The embedded copilot now preserves surface context across conversation turns, maintaining clarity when users reference “this” or “that” in multi-turn conversations.
- Brex classification sync: DualEntry classifications are now pushed to Brex as custom ERP field values in accounting integration mode, keeping classification data synchronized across systems.
- AI tools page: New tools page provides centralized management of AI connectors with connect/disconnect controls and status monitoring.
- Subsidiary organization management: When adding a subsidiary, existing child organizations are automatically reorganized as siblings to maintain proper hierarchy.
- Bulk import field selector: Added nested field selector for more intuitive column mapping during bulk imports.
- Smart bank matching: New option to match only unmatched transactions, automatically filtering out already reconciled items.
- Meld integration control: Organizations that don’t actively use Meld integration can now hide it from their interface.
- Improved amortization status: Amortization records now correctly show “Fully Amortized” status when the remaining balance reaches zero.
- Customer export performance: Improved performance for large customer data exports with optimized query handling.
- Bulk import engine extensions: Added happy-path conversion support for 20 additional record types including payments, refunds, deposits, bank transfers, companies, items, and amortizable assets.
- Enhanced record context: Improved context handling for record-specific operations and lookups throughout the platform.
- Bank reconciliation status: Fixed reconciliation status not updating to “Reconciled” after completion, ensuring status stays in sync with actual reconciliation state.
- Outstanding AP/AR reporting: Resolved discrepancies between Outstanding AP dashboard widget totals and AP Aging report totals for the same filter criteria.
- Access denied on first sign-in: Fixed users incorrectly encountering access denied errors on their first sign-in when webhook provisioning lagged behind authentication.
- Integration authentication: Resolved authentication failures in various integrations including Finch access token validation.
- Zero-amount transaction matching: Fixed errors in bank matching when processing zero-amount financial transactions that could incorrectly trigger vendor prepayment creation.
- Stripe integration sync: Corrected April transaction sync issues in the Stripe integration data sync table.
- Performance optimizations: Improved query performance for customer payment operations, fixed attachment download URLs in public API responses, and reduced database connection timeouts.
- Ramp reconnection for demo orgs: Fixed Ramp integration reconnection process for demo and sandbox organizations that was incorrectly using production environment endpoints.
- Organization clone accuracy: Resolved multiple data integrity issues in organization cloning where copied records, links, or values were silently dropped or incorrectly pointed back to source data.
- Contract billing discounts: Fixed negative residual billing amounts on change orders with discounts and corrected discount amount calculations for endless contracts.
- Ramp reimbursement migration: Aligned reimbursement migration cutoff logic with approval date settings to ensure consistent data filtering.
- OpenSearch connection timeouts: Resolved read timeout errors during OpenSearch reindexing operations that were causing connection failures.
- Bulk import task routing: Fixed bulk import V2 tasks incorrectly falling through to default Celery queue instead of the dedicated bulk import queue.
- Embedded Copilot display: Fixed embedded copilot appearing blank when feature flag is disabled and resolved CSS panel-width variable initialization.
- Depreciation page errors: Fixed error handling on depreciation detail pages by using pre-fetched data instead of making redundant API calls.
- Migration card navigation: Restored click functionality on migration card arrows and relocated analyze button to prevent click interference.
- Contract billing logic: Fixed frontend billing calculations for endless contracts with change orders and discount applications.
- Spotlight Search integration: Fixed spotlight search failing to properly open new copilot chat sessions.
2 new features, 3 improvements, 10 fixes
New features
- Flux Analysis comparison options: Year-over-year, prior year-to-date, and rolling 12-month comparison options are now available for Income Statement analysis. Balance Sheet includes year-over-year comparisons for enhanced period-over-period insights.
- Bulk Import API integration: Updated bulk import functionality with new API endpoints for improved data processing and import handling.
- Recurring schedule empty state: Added helpful empty state messaging when no recurring schedule items are configured, making it clearer when schedules need to be set up.
- Reports Customize button: The Customize action is now available as a top-level button in report headers for faster access to report customization options.
- Customer Deposits transaction dates: Customer deposit transactions now use consistent transaction and posting dates for better record alignment.
- Contract status display: Fixed issue where manually archived contracts incorrectly displayed “Active” status badges instead of showing their archived state.
- Session management: Improved handling of expired authentication tokens by automatically redirecting users to the login screen when sessions become invalid.
- Revenue recognition tax calculations: Updated tax provider integration to use the latest version for more accurate revenue recognition calculations.
- Journal entry form layout: Removed empty Actions column from New Journal Entry and New Recurring Journal Entry forms to improve screen space utilization.
- Bank reconciliation matching: Unmatchable bank transaction records are now properly excluded from bulk action selections.
- Modal navigation: Fixed modal exit functionality to ensure users can always close dialogs regardless of modal state.
- Memo field alignment: Fixed misaligned memo field placeholder text for improved form appearance.
- Invoice creation error handling: Improved error handling for invoice creation failures to prevent users from being left on retry forms after ambiguous backend errors.
- Bank routing number validation: Bank Routing Number field now requires exactly 9 digits, preventing submission of incomplete routing numbers.
- Revenue recognition sidebar: Removed revenue recognition item from sidebar navigation for streamlined interface.
2 improvements, 4 fixes
Improvements
- Scheduled Agents page redesign: Updated the Scheduled Agents interface with improved layout and user experience as part of the Accounting Intelligence redesign initiative.
- Artifacts view improvements: Enhanced the artifacts view interface for better usability and visual clarity.
- Required field indicator: The “Recurring Name” field now displays an asterisk (*) to indicate it’s mandatory across all recurring transaction forms.
- Customer deposit loading table: Fixed layout alignment between loading rows and table columns in the customer deposit transactions view.
- PDF statement formatting: Resolved large white space on first page and horizontal text stretching issues in customer statement PDFs.
- Revenue recognition bulk actions: Fixed issue where bulk action buttons remained available after removing obligations, preventing stale state interactions.
21 new features, 4 improvements, 16 fixes
New features
- AI Copilot: Added PDF report generation capability that renders markdown content into styled PDF documents for email attachments and file sharing.
- AI Copilot: Enhanced email functionality with support for three types of attachments: context summaries, pre-uploaded files, and in-memory CSV exports.
- AI Copilot: Added user settings and memory management with customizable modifier tags, memory toggle, and custom preface options.
- AI Copilot: Added Scheduled Agents interface allowing you to create, view, edit, and manage automated agents with dedicated drawer components for streamlined workflow automation.
- Bank rules: Added natural language bank rule creation that parses rule descriptions and shows preview of matching transactions before saving.
- Bank transactions: Added bulk auto-categorization tool to process uncategorized transactions with AI suggestions and confidence thresholds.
- Approval workflows: Added natural language approval policy creation with fuzzy approver resolution by email, role, or name.
- Approval workflows: Added bulk approve and reject functionality for pending records scoped to the current user.
- Approval workflows: Added reroute approval tool to reassign pending approvals around out-of-office approvers.
- Journal entries: Added reverse journal entry functionality accessible through AI Copilot with automatic date increment and entry mirroring.
- Accounts: Added account merging capability from chat with preview and execute workflow for consolidating chart of accounts.
- Fixed assets: Added read-only tools for viewing depreciation schedules, asset listings, and journal entry explanations.
- Fixed assets: Added disposal functionality covering all asset types with comprehensive field support.
- Close management: Added close checklist viewing tool and period readiness aggregator for monitoring close status.
- Bank connections: Added failed sync listing and retry capabilities with full integration resync functionality.
- Data management: Added mass field application tool to update multiple master data entities with whitelisted fields.
- Tax: Enhanced GL posting with per-component tax entries via regional nexuses for complex multi-jurisdiction scenarios.
- Integrations: Added Salt Edge banking provider support with institution routing and country metadata.
- System administration: Added audit trail query tool and period lock change monitoring for compliance tracking.
- AI Copilot: Enhanced human-in-the-loop capabilities with interrupt cards that allow you to approve, reject, or respond to AI tool requests before they execute.
- Customer statements: Made start date field optional for more flexible statement generation.
- Organization management: Added Last External Login column showing when the last non-DualEntry user accessed each organization, with sortable columns for better organization tracking.
- Flux analysis: Added numeric variance filters to filter reports by dollar amount or percentage thresholds, plus structured AI-generated explanations with formatted text and improved review badges.
- Waycore banking: Added Waycore branding to advanced bank connection modal headers for clearer provider identification.
- Bulk import: Redesigned bulk import interface with improved user experience and streamlined workflow for data uploads.
- Stripe integration: Fixed contract end date handling during cancellation workflows to allow proper archival processing.
- Bill.com integration: Fixed account description truncation to 100 characters to prevent API rejection errors.
- AI Copilot: Fixed multi-pause decision replay issues in human-in-the-loop workflows with proper interrupt value handling.
- AI Copilot: Fixed payroll accrual prompt routing to direct queries to the Accruals agent instead of returning generic educational content.
- Organization management: Fixed “Create New Organization” button in Archived tab that was redirecting to 404 page instead of opening the organization creation modal.
- Organization management: Corrected validation message display in the Eval tab question field.
- Amortization schedules: Fixed unexpected field height expansion when Amount field validation is triggered.
- Budget reports: Resolved Income Statement only displaying budgets from the first page, now correctly shows all budget data across pagination.
- Customer deposits: Fixed form layout and validation issues in customer deposit creation and editing workflows.
- Banking connections: Fixed “Keep Connection” button properly closing the connection modal.
- Revenue recognition: Resolved recognition summary true-up calculation errors.
- Field alignment: Fixed misaligned base currency field in company general settings and other form layout issues.
- Form validation: Improved money-in item line validation consistency across invoices, cash sales, and sales orders.
- PDF generation: Fixed Canada tax registration rendering in PDF company sections.
- Navigation: Resolved confirm close dialog accessibility issues and fixed React key prop warnings.
- System performance: Removed unused Next.js data cache functionality to improve application performance and reduce complexity.
7 new features, 2 improvements, 5 fixes
New features
- Bulk import engine: New processing engine with improved validation, mapping, and error handling for importing large datasets. Includes support for flat-shaped CSV files and row-by-row upsert operations.
- Avalara tax integration: Enhanced push transaction logic with improved customer credit mapping and refined default integration settings for better tax compliance workflows.
- Slack user lookup: New capability to search and resolve Slack users by name or email within integrated workflows.
- Record source line API: New unified endpoint for fetching records from multiple sources with client-side sorting, filtering, and pagination support.
- Anomaly detection filters: Added support for multiple transaction type filters with improved selection retention in anomaly detection workflows.
- Ramp integration settings: Added configuration option to use approval date as reimbursement posting date for more accurate transaction timing.
- Embedded Copilot context: Enhanced AI copilot with surface context awareness, allowing the assistant to understand what page or entity the user is currently viewing.
- Enhanced AI agent framework: Added specialized agents for master data operations, close management, bulk operations, and fixed assets with improved tool delegation capabilities.
- Entity mutation events: Simplified entity update notifications with direct event emission, replacing the previous artifact-based system.
- Bank Match archival: Fixed issue where bank matches on termination transactions prevented proper archival of contracts.
- Brex integration sync: Resolved sync issues and extra GL account creation problems. Fixed account deactivation in Brex when accounts are archived in DualEntry.
- Ramp transaction sync: Fixed timing issues where Ramp transactions were not syncing simultaneously, ensuring consistent data flow.
- Change order credits: Corrected customer credit calculation inconsistencies in change orders with improved discount payload validation.
- QuickBooks Trial Balance: Fixed parser to properly handle flat-shaped CSV exports where all columns are populated in every row.
12 new features, 4 improvements, 14 fixes
New features
- Embedded AI copilot: Added a redesigned right-pane copilot interface for easier access to AI assistance while working with your data.
- Customer statement re-sending: You can now re-send customer statements and preview only the first page when showing statement previews.
- Revenue recognition terminations: Added ability to open contract terminations directly from outside the contract page for improved workflow navigation.
- Customer prepayments: Enhanced prepayment creation to automatically populate currencies from your company’s base currency settings.
- Vendor refunds: Added comprehensive vendor refund functionality to manage outbound payments to suppliers.
- Report package scheduling: Added date range configuration to report package schedules and marked the module as beta.
- AR/AP aging report clarity: Added preselected transaction type filters to clarify which record types are included by default in aging reports.
- Payroll accrual worksheet: Added worksheet artifact generation for payroll accruals with post-save reversal and related records chain.
- NetSuite migration support: Added NetSuite as a migration option alongside QuickBooks and Xero with Fivetran connector support.
- Payroll accrual account reclassification: Added dropdown to swap cash credit lines to liability accounts in payroll accrual workflows.
- Revenue recognition contract modifications: Added contract change order functionality to handle contract modifications and amendments.
- Transaction import options: Added tooltip explaining the upserts on transactions toggle for import settings.
- MCP marketplace logos: Connector marketplace now displays logos for each available integration to improve visual identification.
- Flux analysis enhancements: Improved threshold modal with live row count preview, refined Balance Sheet comparison options, and enhanced drill-down charts with prior period overlays.
- Ramp approval date mapping: Added setting to use approval date as posting date for reimbursements with updated accounting date mapping labels.
- Customer statement record types: Expanded customer statements to include credit memos, customer payments, and journal entries alongside invoices.
- Bank transfer amount precision: Fixed issue where exact amounts couldn’t be entered on bank transfers due to exchange rate rounding.
- Vendor refund display: Fixed missing currency display in Applied Amount cells on vendor refund details pages and restored proper cell padding.
- Bill listing totals: Corrected bill total amounts on listing pages to properly include taxes.
- AR aging customer filter: Fixed customer filter dropdown being incorrectly hidden by company filter selection.
- Tax registration sync: Fixed tax registration numbers not saving correctly on nexus pages and improved sync with legacy tax fields.
- Payment amount field layout: Improved payment form layout when no payment type is initially selected.
- Form navigation crashes: Resolved server-side rendering crashes in form components that prevented page loading.
- Report error handling: Fixed crashes in Flux Income Statement and other reports when backend data is not found.
- Bulk import job handling: Improved error handling and status management for bulk import operations.
- Customer filter cascading: Fixed issue where valid customers were hidden due to incorrect company filter cascading.
- Invoice currency handling: Fixed issue where base company currency was not preserved correctly on new invoice forms.
- Journal entry retry protection: Added safeguards against duplicate journal entry creation when backend writes succeed but responses return server errors.
- Bank match audit logging: Fixed audit log entries to properly show “via API” for organization API key actions instead of “Unknown”.
- Embedded copilot loading: Fixed server-side rendering issues with the embedded copilot component that caused page loading failures.
16 new features, 2 improvements, 16 fixes
New features
- AI Copilot artifact creation: Added endpoint for embedded copilot to register surface context artifacts when users navigate within copilot components.
- Bills bulk import: Added Reference Number column to bills bulk import and update templates for easier bulk management.
- Amortizations: Added support for negative accumulated balances and one-time billing frequency for contract obligations.
- Customer statements: Enabled re-sending customer statement emails after initial delivery.
- Contract management: Added days until expiry field and filter, plus enhanced change order tracking with audit logs and summary endpoints.
- Canadian tax compliance: Added support for regional nexuses (GST/PST/HST) with tax recoverability validation.
- MCP integration: Added logo URLs to MCP server responses and improved Slack channel listing with flexible name matching.
- Trial Balance reporting: Added new trial balance endpoint for comprehensive account balance reporting.
- Brex integration: Added source links to synced transactions and support for VAT rate data push to Brex.
- Deel integration: Added support for Deel EOR worker payroll integration.
- Fivetran connectors: Enabled NetSuite SuiteAnalytics and Sage Intacct migration setup flows.
- Public API: Added amount due filter to invoices list endpoint and classifications support for customer and vendor credits.
- MCP user authentication: Added per-user OAuth credential management for MCP servers, allowing individual users to connect and manage their own MCP integrations.
- AI Copilot tool updates: Extended tool update notifications to handle entity modifications (Customer, Vendor, Item) and notify affected artifacts.
- Bulk import engine: Added new CSV and XLSX parsers with streaming support, encoding detection, and unified processing interface.
- Canadian tax registration: Enhanced tax registration numbers logic for Canadian GST with support for multiple jurisdiction-specific registration numbers.
- Payroll accrual: Added default closing month support and improved accrual line generation for payroll processing.
- Data sync filtering: Extended integration data sync to filter by transaction date instead of sync date for improved reporting accuracy.
- Bulk import: Fixed missing classification values in bulk update template rows for proper data export.
- Amortization calculations: Corrected off-by-one error in remaining period calculations when accumulated through dates are at month end.
- Contract scheduling: Fixed errors when obligation-level billing or recognition intervals are null by using contract-level defaults.
- Ramp integration: Resolved sync status issues for reimbursements and improved URL handling for vendor payments.
- Bank matching: Enhanced inactive account guards in transfer draft creation to prevent validation errors.
- Organization cloning: Fixed rollback handling for failed partial writes and replaced name-based matching with ID-based lookups.
- Integration records: Improved performance by eliminating N+1 queries in Finch integration serialization.
- Content type caching: Optimized database queries by using cached ContentType lookups across multiple API endpoints.
- MCP tools: Fixed record ID handling for IntercompanyJournalEntry objects and improved error responses for unknown record types.
- Contract metrics: Fixed null handling in contract change order data and improved integration bulk archive processes.
- Journal entry reversals: Fixed imported journal entry reversals not posting to the General Ledger by setting correct record status.
- Bank reconciliation: Fixed statement balance updates when the balance is zero by ensuring zero values are properly persisted.
- Payroll accrual: Fixed accrual line generation for credit lines by gating each side independently on its own base.
- Ramp integration: Fixed custom field option reactivation errors by handling already-active options as no-op operations.
- Stripe integration: Fixed duplicate transaction issues by ignoring archived duplicate transactions during sync.
- Custom field validation: Added proper date validation for custom fields in bulk import operations.
11 new features, 4 improvements, 8 fixes
New features
- Customer statements: Create, preview, and send customer statements with bulk download capabilities and activity tracking.
- Currency revaluation recurring templates: Added recurring tab to currency revaluations with auto-update functionality for selected accounts.
- Close management task reordering: Tasks in close checklists can now be reordered using drag and drop, with new tasks appearing at the top by default.
- Vendor credits: Added support for creating and managing vendor credit transactions.
- Direct expenses: New transaction type for recording direct business expenses.
- Vendor payments and prepayments: Enhanced vendor payment workflows including prepayment applications and management.
- Payroll integration bulk mapping: Enable bulk mapping for pay statement line items across payroll integrations.
- Revenue recognition contract visibility: Completed contracts are now visible in customer views.
- AI Copilot payroll accrual worksheet: Added AI-generated worksheet artifacts for payroll accrual calculations.
- Canada tax nexus configuration: Enhanced tax nexus setup for Canadian operations with country and region selection.
- Revenue recognition invoice memo display: Added memo visibility for performance obligations in invoice grouping views.
- Chart of Accounts default sorting: Accounts now load in financial statement order (by account type, then number) for improved navigation.
- Custom cash flow reports: Enhanced account picker to include Balance Sheet accounts and improved row editing capabilities.
- Eval cases tag-based categorization: Updated evaluation case filtering and display to use tag-based organization.
- Report package management: Improved design and user interface for creating and managing report packages.
- AI journal entry archiving: Fixed system error when archiving AI-created journal entries.
- Archive/recover modal state: Resolved modal state conflicts when transitioning between archived and posted entries.
- Trial Balance date range: Corrected Trial Balance to use single as-of-date picker aligned with company tax period configuration.
- Integration source links: Fixed list page source badges to link to correct per-record URLs instead of generic integration sites.
- Multi-currency form defaults: Resolved hardcoded USD currency defaults to use company base currency across forms.
- Revenue recognition contract termination: Fixed 404 errors when redirecting to contract termination pages.
- Authentication error handling: Improved handling of 401/403 authentication errors to reduce noise in error reporting.
- Archived report package actions: Fixed archived report package detail view to show “Recover” action instead of “Archive” button.
2 new features, 1 improvement, 7 fixes
New features
- Bulk update for direct expenses: You can now update multiple direct expense records at once using CSV upload, streamlining expense management workflows.
- Brex tax code integration settings: New integration settings allow you to control which tax rates are pushed to Brex, giving you more control over tax code synchronization.
- Fixed asset accounts in amortizations: Asset account dropdown in amortization setup now includes fixed asset account types for more accurate depreciation tracking.
- Multi-currency form defaults: New invoices, cash sales, customer payments, deposits, refunds, credits, and purchase orders now default to your company’s base currency instead of hardcoded USD.
- Chart drilldowns in AI Copilot: Fixed missing click interactions on waterfall, line, area, and donut charts so you can drill down into chart elements as expected.
- Close checklist template saving: Resolved issue where large checklist template changes would fail to save with a toast error message.
- Customer payment invoice selection: Fixed bug where invoices remained selected after changing the customer on a payment form.
- Form field alignment: Improved visual alignment of company/vendor fields on bills and customer prepayment application forms.
- Report subtotal controls: Removing subtotals in report settings now properly removes them from the displayed report.
- Customer prepayment application footer: Fixed footer positioning on customer prepayment application lists to stay at the bottom of the viewport.
2 fixes
Fixes
- Intercompany posting options: Fixed issue where the “Enable Intercompany Posting” option was missing from invoice creation and editing forms.
- Money-in record operations: Improved reliability of archive and recovery operations for cash sales and customer payment records.
11 new features, 3 improvements, 15 fixes
New features
- Revenue recognition contract tools: Added AI copilot tools for searching, viewing details, and creating revenue recognition contracts with full obligation and schedule support.
- Bank transaction API: New public API endpoints for managing bank transactions and matching operations.
- Payroll series detection: AI copilot can now identify recurring payroll journal entries with confidence scores to assist with month-end accrual preparation.
- Scheduled chat access: Organization admins can now access scheduled chat sessions created by any team member for proper oversight and audit purposes.
- Surface context schema: Added backend support for embedded copilot with page-specific context awareness across record views, entity views, and reports.
- Revenue recognition contract change orders: Added support for adding, canceling, and modifying contract obligations with quantity, rate, and discount changes in a single change order.
- PATCH API support: Added PATCH endpoints for Customer, Vendor, and Classification resources to update specific fields without full record replacement.
- Prepayment suggestions: Bank matching now suggests prepayment transactions when a vendor or customer is identified but no open bills or invoices exist.
- Customer statements list page: Added redesigned customer statements list with filtering, search, and bulk actions.
- Multi-currency exchange rates: Exchange rate defaults now derive from company base currency settings instead of hardcoded USD fallbacks.
- Async report exports: Added progress tracking for report exports with real-time status updates during long-running export operations.
- Customer credit contract filtering: Customer credit list API now supports filtering by contract ID for better revenue recognition workflows.
- Smart record filtering: Invoice, bill, and credit forms now automatically filter related records by selected customer or vendor for faster data entry.
- Fixed asset account filtering: Added fixed asset account type to accumulated amortization account filters for improved asset management workflows.
- Bulk import validation: CSV imports for customers, vendors, and journal entries now properly validate data and reject invalid values with clear error reporting.
- Audit trail user roles: Fixed audit log to display actual user roles instead of showing all users as Admin.
- Cross-company payments: Corrected general ledger accounting for cross-company payments with custom AP accounts to use the bill’s specific AP account instead of system default.
- Invoice API performance: Eliminated N+1 query issues in public invoice API endpoints for improved response times.
- Fixed asset performance: Resolved N+1 query in custom schedule item deletion to improve fixed asset save operations.
- Customer type validation: Fixed API response errors for customers with non-standard type values imported via CSV or integrations.
- Ramp integration stability: Improved error handling for malformed JSON responses from Ramp API.
- Python 3.13 compatibility: Updated tracing library to resolve runtime errors during async request handling.
- Organization copy payment lines: Fixed cloned organizations to correctly preserve payment-to-invoice and payment-to-bill associations for accurate Outstanding AR and AP balances.
- Document classification filtering: Improved AI copilot to reject non-financial documents when classify intent is triggered through validation workflow.
- Bank Match API validation: Bank match API now properly rejects invalid is_highest_ranked parameter values and returns clear error messages.
- Revenue recognition MCP error handling: Improved error messages and field validation for contract creation through AI copilot tools.
- Flux activity feed display: Fixed flux analysis activity logs to show proper user names and avatars instead of generic timestamps.
- Failed import status: Bulk import screens now correctly display error status for imports that completed with zero records processed.
- Customer children API: Fixed customer hierarchy API to properly handle paginated responses when loading child customer relationships.
4 new features, 1 fix
New features
- Customer statement email: Added email functionality for customer statements, allowing you to send statements directly to customers from within DualEntry.
- Sales order currency defaulting: New sales orders now automatically default to your company’s base currency for streamlined order creation.
- Customer receipt functionality: Added support for creating and managing customer receipts within the accounts receivable workflow.
- Integration header enhancement: Integration pages now display your company name in the header for clearer context when managing multiple entities.
- Customer payment PDF layout: Improved PDF formatting to ensure all data fits properly on single lines for better readability and printing.
4 new features, 1 improvement, 8 fixes
New features
- QuickBooks Online currency handling: Deposits with currency mismatches are now converted to journal entries instead of failing import.
- Custom fields for fixed assets: You can now add custom fields to fixed assets for better categorization and tracking.
- Revenue recognition reports: New reporting capabilities for revenue recognition contracts and obligations with pagination support.
- Increased API pagination limits: Vendor payments and vendor prepayment applications endpoints now support up to 10,000 records per page for bulk operations.
- OCR upload validation: File uploads now validate that documents are financial in nature before processing, reducing errors from screenshots or non-financial content.
- Enhanced bulk import support: Excel files with whole-number cells (like 12345.0) now import correctly without validation errors.
- Organization cloning stability: Clone jobs that fail mid-process now automatically retry instead of getting stuck indefinitely.
- Account copying performance: Organization cloning now uses bulk operations for copying accounts, significantly improving speed.
- Classification lookup in bulk imports: Fixed import failures for organizations with classification names containing spaces.
- Stripe refund processing: Refunds are now properly imported for invoices without subscription aggregation records.
- Integration sync performance: Reduced database query load during Ramp and Stripe synchronization to eliminate slow query alerts.
- Transaction origin preservation: Bulk CSV updates now preserve transaction origin information correctly.
- N+1 query elimination: Fixed multiple database performance issues in vendor payment validation and Bills API responses.
1 new feature, 1 improvement, 1 fix
New features
- File uploads in Copilot chat: You can now attach files directly in the Copilot chat interface. Uploads are more reliable and handle larger files without errors.
- VAT Return redesign: The VAT Return report now displays a 15-column detail layout grouped by country and transaction direction, with a dedicated filter bar for country, company, direction, and rate type. A new HMRC-ready summary view renders the 9-box grid alongside a rate-type breakdown table, with KPIs for VAT on Sales, VAT on Purchases, and Net VAT shown at a glance.
- Bill form improvements: The bill entry form has been updated for a smoother, more consistent experience when creating and editing vendor bills.
10 new features, 6 improvements, 22 fixes
New features
- Payment Method: “Exclude from 1099” flag: You can now mark a payment method as excluded from 1099 reporting. This flag is available when creating or editing a payment method and is reflected in vendor payment records.
- Payment Method audit log: Changes to payment methods are now recorded in the audit log, giving you a full history of who created, modified, or deleted each payment method.
- Bank Rules permissions: Access to Bank Rules is now governed by role-based permissions, giving administrators control over who can create and manage bank matching rules.
- Brex: Accounting entity push sync: DualEntry now pushes company and accounting entity data to Brex during integration sync, keeping your Brex configuration aligned with your DualEntry entity structure.
- Journal Entries: Bulk update via CSV import: You can now update multiple journal entries at once by uploading a CSV, matching the existing bulk update flow available for bills, accounts, vendors, and customers.
- HR user role: A new built-in HR role is available for users who manage HRIS integrations. The HR role includes view access to chart of accounts, classifications, and company settings, plus permission to create and manage integrations.
- Stripe: Auto-create customer payments from Payment Links: When a customer pays via a Stripe Payment Link, DualEntry now automatically creates the corresponding customer payment record, removing the need for manual entry.
- Ramp: Intercompany vendor payment support: The Ramp integration now detects and records cross-company vendor payments as intercompany transactions, keeping your intercompany accounting accurate when payments are made across entities.
- Xero migration: VAT rates imported as line-level tax: When migrating from Xero, VAT rates are now brought into DualEntry as proper per-line tax amounts rather than separate liability line items. This ensures VAT is correctly reflected in tax reports and eliminates double-counting on inclusive invoices.
- Customer statements: DualEntry now supports customer statement records, giving you a structured view of outstanding balances and transaction history per customer.
- AI Copilot: Interactive drill-down on charts and tables: Clicking a numeric value in Copilot scorecards, charts, and tables now opens the corresponding filtered report (Income Statement, Sales by Customer, and others). Drill-down is available for expense, revenue, and vendor-level views across Q11-Q16.
- BAI bank statement imports: The financial transactions bulk import now accepts BAI bank statement files (
.bai,.bai2,.txt) in addition to CSV and Excel. Use this to import bank transactions directly from your financial institution’s BAI export. - Migrations: Sync outstanding transactions only: The data migration sync trigger now supports a “Sync all outstanding transactions” mode that re-syncs only records in Ready-to-sync or Error status, skipping rows that are already mapped. This reduces sync time after fixing mapping errors.
- Xero: VAT support for vendor credits: Vendor credits synced through the Xero integration now include VAT data, ensuring credit notes are reflected accurately in your tax records.
- HubSpot: Contracts now appear in list responses: HubSpot-sourced records are now included when retrieving contract lists, so your HubSpot-linked contracts are visible alongside natively created contracts.
- Dashboard: Faster AR and AP aging widgets: The Outstanding and Overdue AR/AP aging widgets on the default dashboard view now load significantly faster, with load times reduced by approximately 3× for large data sets.
- Dashboard: Incorrect currency display: The dashboard was showing amounts in the wrong currency for some multi-currency setups. Amounts now display in the correct currency.
- Customer and vendor outstanding balances: Consolidated exchange rate: Outstanding balances for customers and vendors now use the consolidated exchange rate, matching the values shown in AR and AP aging reports.
- Contracts: Locked-period validation with cutover date: Contracts with a cutover date were incorrectly blocked by locked-period validation for dates before the cutover, even though no records would be created for those periods. The validation now only checks dates on or after the cutover date.
- Bulk import CSV templates: Standardized column names and date format: Bulk import CSV templates now use consistent column names and a uniform date format. Previously downloaded templates continue to work; old column names remain supported.
- Bill.com: Connection failures on reconnect: Reconnecting a Bill.com integration was failing when the company ID was not in the expected format. The reconnect flow now accepts the credentials Bill.com provides without requiring manual reformatting.
- Plaid: Incorrect last-synced timestamp: Plaid bank connections were recording the sync timestamp as the current time rather than the actual aggregation time, causing sync status to appear more recent than it was. The timestamp is now set correctly.
- Stripe: Sync errors on locked periods: The Stripe integration was encountering errors when syncing contracts whose revenue recognition or invoice dates fell within a locked period. These sync errors are now handled gracefully.
- Stripe: Payment Link fee recording: Fees recorded via Stripe Payment Link webhooks were being applied incorrectly in some cases. Fee amounts are now recorded accurately, and stale payment intent records no longer cause sync failures.
- Cubby: Account type filtering in account picker: When editing a Cubby account mapping, the account picker was showing all account types instead of filtering to the correct type. The picker now correctly filters based on the source account type from Cubby.
- Cash flow waterfall chart: Opening balance display: The opening cash balance bar was not reliably appearing in the waterfall chart due to an internal comparison issue. The opening balance now renders correctly in all cases.
- Migrations: SQL format errors: Certain data migration operations were failing due to a SQL formatting issue. Affected migrations now complete successfully.
- Bank Match AI: Performance improvements: Matching suggestions now load faster. Several database query inefficiencies in the AI matching process have been resolved, reducing the number of queries executed per matched payment.
- Bill.com: Sync errors from skipped account mappings: The Bill.com sync was failing when item imports encountered skipped or stale account mappings, causing records to not be created. Skipped mappings are now handled correctly and no longer block the sync.
- Fixed assets: Spurious archive error message: Archiving a fixed asset from the Asset Overview was displaying a “Failed to archive fixed asset” error even when the archive succeeded. The error no longer appears, and archiving now correctly cascades to associated disposals and recalculations.
- Fixed assets: Half-month and mid-month depreciation convention calculations: Depreciation amounts calculated using the half-month and mid-month conventions were incorrect in some cases. Calculations now produce the correct values.
- Plaid: Stale sync cursors not cleared on pagination errors: Plaid transaction sync was not correctly recognizing cursor invalidation errors during pagination, causing stale cursors to persist and preventing fresh transaction data from loading. Cursors are now cleared correctly when Plaid signals invalidation.
- AI Copilot: Analytics table rendering: Aggregate and breakdown tables in the AI Copilot were rendering incorrectly due to schema mismatches, including string-formatted currency values and missing column type hints. Tables now render correctly with properly formatted numbers and totals.
- Zoho: Invoice items failing to sync: Zoho invoice items with names exceeding field length limits were failing to create master records in DualEntry, which also blocked the creation of associated customer payments. Item names are now trimmed automatically during sync.
- HR role: Access to recurring transactions: Users assigned the HR role were unable to view recurring transactions. HR users can now view recurring transactions, consistent with all other non-admin roles.
- Ramp: Vendor payment sync errors: The Ramp integration was failing in certain cases when optional vendor payment detail fields were absent. These fields now default correctly, preventing sync errors.
- Bank connections: Daily health check retry behavior: The bank connection health check task was re-entering its lock window immediately on retry, causing retries to no-op. Retry timing is now aligned with the lock duration so retries execute as expected.
- Integrations: Transient sync failures during daily transaction sync: Some bank connections were experiencing 502 errors during daily transaction sync due to transient provider errors. The sync now retries automatically on these errors, reducing failed syncs.