> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog: July to September 2026

> Every DualEntry release from July to September 2026, newest first: new features, improvements, and fixes.

Every change to DualEntry from July to September 2026, newest first.

[Latest](https://docs.dualentry.com/developers/release-notes/changelog.md)
[Oct to Dec 2026](https://docs.dualentry.com/developers/release-notes/changelog-2026-q4)
Jul to Sep 2026
[Apr to Jun 2026](https://docs.dualentry.com/developers/release-notes/changelog-2026-q2)

**September 28, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 25, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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$symbol instead of$, 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.

**September 24, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 23, 2026**

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`, and `standalone_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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 22, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 21, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 20, 2026**

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.

**Fixes**

* **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.

**September 19, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 18, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 17, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 16, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 15, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 14, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 13, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 12, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 11, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 10, 2026**

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`, and `billable_markup_pct` on line items so partners can mark imported expenses as billable.

**Improvements**

* **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.

**Fixes**

* **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.

**September 9, 2026**

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.

**Improvements**

* **Tax posting detail**: Tax records now show the general ledger posting detail when editing, including how VAT amounts split across accounts.

**Fixes**

* **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.

**September 8, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 7, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 5, 2026**

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.

**Improvements**

* **Account renumbering in bulk import**: The bulk import field mapper now supports renumbering multiple accounts, matching the capability already available in chart of accounts.

**Fixes**

* **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.

**September 4, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 3, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 2, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**September 1, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 31, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 28, 2026**

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.

**Improvements**

* **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_record` tool can now create customer refunds and vendor refunds, not just advertise them as supported.

**Fixes**

* **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.

**August 27, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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 `mailto` links 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.

**August 26, 2026**

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_rate` for 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.

**Improvements**

* **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.

**Fixes**

* **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 `mailto` links.
* **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.

**August 25, 2026**

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.

**Improvements**

* **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_taxable` on customer `PUT` and `PATCH` requests, not just `POST`, 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_after` parameter, so you can return only records changed since a specified time.

**Fixes**

* **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.

**August 24, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 23, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 22, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 21, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 20, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **Custom report pivot columns no longer show `$NaN`**: Custom reports with more than one row pivot dimension were displaying `$NaN` in the dimension columns instead of labels. These columns now render correctly as text.

**August 19, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 18, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 17, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 14, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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 `http` and `https` addresses, 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.

**August 12, 2026**

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-Key` header so retried requests do not create duplicate records.

**Improvements**

* **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.

**Fixes**

* **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.

**August 11, 2026**

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_id` in the public API, matching bills and invoices for Centralized Intercompany Billing.

**Improvements**

* **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_taxable` field when creating a customer, so integrators can set tax-exempt status at creation time.

**Fixes**

* **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.

**August 7, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**August 4, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 30, 2026**

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.

**Improvements**

* **Billable expenses improvements**: Enhanced invoice generation with improved formatting and a streamlined interface.
* **Dashboard permissions**: Dashboard and widget creation controls now respect user permissions.

**Fixes**

* **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.

**July 29, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 28, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 26, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 24, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 23, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 22, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 21, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 20, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 16, 2026**

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.

**Fixes**

* **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.

**July 15, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 14, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 13, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 11, 2026**

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.

**Improvements**

* **Improved classifications performance**: Classifications now load faster with pagination support for better performance when working with large datasets.

**Fixes**

* **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.

**July 10, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 9, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 8, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 7, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 3, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 2, 2026**

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_linked` field 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.

**Improvements**

* **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.

**Fixes**

* **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.

**July 1, 2026**

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.

**Improvements**

* **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.

**Fixes**

* **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.

[Latest](https://docs.dualentry.com/developers/release-notes/changelog.md)
[Oct to Dec 2026](https://docs.dualentry.com/developers/release-notes/changelog-2026-q4)
Jul to Sep 2026
[Apr to Jun 2026](https://docs.dualentry.com/developers/release-notes/changelog-2026-q2)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.