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. - 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.
- 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.
- 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.
- Exclude inactive companies from reports: You can now exclude inactive companies when viewing consolidated reports and dashboards.
- 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 6 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.