September 2026 Product Release
Last updated on Sep 21, 2026
Maxio released the following updates and new features during September 2026. Maxio adds new entries to this list throughout the month as features become available.
Accounting
New Round() function for SSP and carve out formulas
SSP and carve out formulas can now call Round(value, decimals) to round an intermediate calculation to a set number of decimal places, which formulas previously had no way to do. The function works in any capitalization (Round, round, ROUND) and accepts 0 to 28 decimal places. (Released: 15 September 2026)
Learn more
- Why it matters:
- Formulas that need a specific rounding precision partway through their math — for example, rounding a per-unit price before multiplying it back out — can now do that explicitly and auditably at the formula level.
Round(...)affects intermediate math only; Maxio still rounds each item's final allocation amount to the nearest cent. - Where to find it:
- Open a Standalone Selling Price (SSP) list's Entries table under Admin > Advanced Revenue > SSP Lists. Use
Round(value, decimals)inside an SSP Formula field or a carve out configured as Formula; the function also appears under Functions in the formula helper's picker.
Auto-convert semicolon-delimited emails to commas during import
Import files for Customers, Contracts, Vendors, and QuickBooks profiles can now separate multiple email addresses with either commas or semicolons; Maxio converts semicolons to commas automatically before the row imports. Previously, a semicolon-separated value passed import validation but could be silently mishandled afterward, since some downstream processes only recognized commas. (Released: 9 September 2026)
Learn more
- Why it matters:
- If your source system or spreadsheet habit separates multiple email addresses with semicolons, you no longer need to manually reformat that column before importing, or risk an import that reports success while quietly storing the wrong value.
- Where to find it:
- No setup needed. The conversion applies automatically to any email or email-list field mapped during a Customer, Contract, Vendor, or QuickBooks profile import — for example, a Customer's Email, CC Email, or Escalation Email column.
Contract number uniqueness help and duplicate detection in the contract importer
The Contract importer's field-mapping page now shows a tooltip beside Contract Number explaining that it must be unique account-wide, and the import now rejects any row whose Contract Number repeats an earlier row in the same file, naming the value and the line it first appeared on. (Released: 9 September 2026)
Learn more
- Why it matters:
- Contract Number is easy to confuse with a Customer Number or another repeating value, and mapping it that way always failed the import — previously only after the first matching row had already been created, with a generic error that didn't say which row or value caused it. The tooltip and the new error catch this before you run the import and pinpoint the exact row if it slips through.
- Where to find it:
- On the Contract importer's field-mapping page, hover the info icon beside Contract Number for the uniqueness requirement. If a Create or Create & Update import file contains a repeated Contract Number, the offending row's error names the value and the line where it first appeared.
Choose which columns display in the invoice detail page's Invoice Line Items table
The Invoice Line Items table on the Invoice detail page now has its own Columns selector, so you can show, hide, and reorder the columns it displays independently of the standalone Invoice Line Item List. This replaces a fixed, un-configurable set of columns. (Released: 14 September 2026)
Learn more
- Why it matters:
- You can trim the Invoice Line Items table down to only the columns relevant to your workflow, and put them in the order you want, without leaving the Invoice detail page.
- Where to find it:
- On any Invoice's detail page, click the Columns icon in the Invoice Line Items table's caption to open the column selector. Your choices are saved per user and are separate from your Invoice Line Item List column preferences.
Redesigned merge payments dialog shows payment status and source
The Merge Payments dialog you open from an invoice or from the Mergeable Duplicate Payments report has been redesigned: it now shows each duplicate payment's status and source, and replaces the previous per-row Merge button with a single selection and Merge Payments action. (Released: 14 September 2026)
Learn more
- Why it matters:
- You can now see at a glance why a payment is or isn't offered as a merge candidate, since its status and source are shown directly on each row, and a single, always-visible Merge Payments action makes merging easier when there are several candidates to scroll through.
- Where to find it:
- Open an invoice, hover over Payments, and select Merge Payments — or go to Issues > Mergeable Duplicate Payments and choose Open Details on a row. Select a candidate payment and click Merge Payments.
NetSuite deposit cashback mapping now applies to deposit other lines
NetSuite Send Deposits previously applied your configured Department, Class, or Location mapping only to Deposit Cashback (fee) lines and the deposit header. It now applies the same mapping to Deposit Other lines as well. (Released: 14 September 2026)
Learn more
- Why it matters:
- If your NetSuite role requires a Department (or Class/Location) value on every deposit line, deposits containing unassociated funds no longer get rejected by NetSuite — Maxio now sends the same value on the Deposit Other line that it already sent on the Cash Back and header lines.
- Where to find it:
- Automatic for NetSuite Send Deposits syncs that already have a Department, Class, or Location mapping configured under Settings for Deposit Cashbacks. No new configuration is needed.
Fixed false Intacct home-currency mismatch warning for multi-base-currency companies
Sage Intacct companies with Multiple Base Currencies enabled no longer see an incorrect "Home Currencies in Maxio and Intacct Do Not Match" warning, as long as Maxio can determine the base currency. Maxio now reads it from the specific Intacct entity the integration is configured against, instead of a company-level field Intacct leaves blank for these companies. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, any multi-base-currency Intacct company saw this mismatch warning on the Intacct Settings and Home pages regardless of whether its currencies actually agreed, since Maxio was comparing against a value Intacct always leaves blank for these companies. The warning now appears only for a genuine mismatch — or when Maxio can't determine the entity's base currency at all, which leaves nothing to compare against.
- Where to find it:
- Intacct Settings and Intacct Home pages, in the sync warnings section. Applies automatically on the next Get Settings sync; no configuration change is needed. If the configured entity's currency can't be determined — for example, because the Intacct user configured for the integration doesn't have access to that entity — Get Settings logs a warning and leaves the currency unresolved rather than halting the sync.
Standalone Adyen platform fees now post to the correct GL fee account
Standalone Adyen platform-fee payout lines, such as a monthly gateway access fee, now sync to your general ledger as fee lines against your configured fee account, instead of as unassociated deposit lines against your Unassociated Payments Account. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, these fees landed in your Unassociated Payments Account instead of your fee account, so the deposit reached your books misclassified and had to be corrected manually. They now post to the right account on their own.
- Where to find it:
- Automatic for Send Deposits syncs on Maxio Payments accounts using Adyen, in both NetSuite and QuickBooks. No configuration change is needed. In NetSuite the fee is consolidated into the Cash Back entry; in QuickBooks it posts as its own fee line on the deposit.
List exports now match the list's current sort and display labels
CSV and Google Sheets exports from any sortable list now come out in the same order as the on-screen sort, instead of falling back to the underlying table's default order. Exports from the Items, Payment Lines, and Maxio Data Issues lists also now show the same display labels the list page shows, instead of the raw stored values. (Released: 15 September 2026)
Learn more
- Why it matters:
- Previously, sorting a list and exporting it could return rows in an unrelated order, and several columns exported raw stored values instead of the label shown on screen — the Items list's Item Category, Source, Transaction Start Date, and Transaction End Date; Payment Lines' Type, Source, and Payment Status; and the Maxio Data Issues list's Action. An export could show
chargifywhere the list showedAdvanced Billing, or11772where it showedBusiness Software, so the file could mislead you on both the order and the values it contained. Both now match what you see in the list. - Where to find it:
- No setup needed. Sort any list with a Download export option — for example, Admin > Items, a Payment's Payment Lines list, or the Maxio Data Issues list — then choose a CSV or Google Sheets export; the file's row order and column labels now match the list. Applies to both immediate and background (email-delivered) exports.
Import results now report "Partially Succeeded" instead of a misleading "Failed"
An import run that created some records but also had rows fail now shows as Partially Succeeded rather than an outright Failed, and this also covers a background import that crashed partway through after already creating records. The result detail page now shows the Total, Successful, and Failed row summary whenever that information is available, instead of only for a fully successful import. (Released: 15 September 2026)
Learn more
- Why it matters:
- Previously, an import that created records could still read as "Failed" if any row failed, or if a background task errored after importing rows — so you couldn't tell from the status alone whether anything had actually been created, and could spend time troubleshooting an import that had already succeeded in part. The status and the row summary now reflect what actually happened.
- Where to find it:
- Run any import from the Admin > Import options. The outcome shows on the confirmation screen and in the Results log, where you can also filter by the new Partially Succeeded status. Click a result's status to see the field mapping and the Total/Successful/Failed row summary.
Xero item sync no longer halts on a missing GL account
A Xero Product with no Account assigned no longer stops an entire Xero sync. The item still imports without a GL account, and the rest of that sync run — every other item, invoice, and so on — completes normally. (Released: 15 September 2026)
Learn more
- Why it matters:
- Previously, a single unassigned Product in Xero halted the entire sync with a generic message that didn't say which item was the problem — for a new customer, this could block the Xero onboarding wizard entirely until the offending item was found and fixed in Xero. Now only that item is flagged, and everything else in the run proceeds.
- Where to find it:
- The affected item shows a warning on the Item list and its Item detail page: "This Item was imported from Xero without a GL Account. Assign an Account to it in Xero and re-sync to include it in GL Accounting sync." Assign an Account to the corresponding Product in Xero and re-sync to clear the warning; Maxio picks up the Account automatically.
Insights
Report and export result emails now have clearer subjects and formatting
Scheduled report emails and the report-run and export-completion notification emails now use a shared template: subjects name the report and whether it succeeded or failed, and the body is a clean, legible layout. (Released: 15 September 2026)
Learn more
- Why it matters:
- You can tell whether a scheduled report or export succeeded or failed straight from the email subject line, without opening it. The body now has clearly labeled "View report" and "Download export"/"Open export" links, and a scheduled report email names who set up the schedule and how often it runs — previously that email arrived as one run-on line with the report name linked twice.
- Where to find it:
- Automatically, in the emails Maxio sends for a scheduled report run and for report-run and export completions. No configuration is needed; only the email content and subject line changed.
Chart output on the Finance Summary Report no longer shows an extra table
Selecting a chart Output Format on the Finance Summary Report now shows only the chart, not the chart plus the full computations table. The same charts also now render when you add this report to a Dashboard V2 region, instead of falling back to a bare table. (Released: 14 September 2026)
Learn more
- Why it matters:
- You see exactly what you asked for when you set the report to display as a chart, without scrolling past a table you didn't select. Adding the report to a Dashboard V2 region now shows the same chart widgets you see when viewing the report directly, instead of an unexpected table.
- Where to find it:
- Go to Reports > Finance Summary, set Output Format to any chart type, and run the report -- no table appears beneath the chart. Add the Finance Summary Report to a Dashboard V2 region to see the same charts there.
Choose a revenue book for the contract summary report
The Contract Summary report can now source its revenue figures from a specific Revenue Book instead of always using each Contract's Main Revenue Book, which blends legacy and Advanced revenue together. (Released: 14 September 2026)
Learn more
- Why it matters:
- Previously, separating legacy from Advanced revenue in this report meant manually filtering and reviewing Contracts one by one, which risked misclassifying figures. Selecting a Revenue Book removes that manual step and keeps legacy and Advanced revenue cleanly separated.
- Where to find it:
- Open the Contract Summary report builder (Reports > Add Report > Finance Reports > Contract Summary) and use the new Revenue Book dropdown. It only appears when Advanced Revenue is enabled for your account, and defaults to [Contract Main Book] so existing reports keep their current figures until you choose a different book.
The count report now uses the redesigned report viewer
The Count report has moved to Maxio's newer, generic report viewer, joining several other Analytics and Finance reports that already made this move. This replaces the report's older, report-specific rendering, and it is the last report converted as part of this ongoing project. (Released: 14 September 2026)
Learn more
- Why it matters:
- The Count report now supports Unified CSV export, so it can be included in automations and integrations that rely on that export format, something it could not do before. You also get clickable customer links and a chart view showing the report's totals and period-over-period change, consistent with other recently-updated reports.
- Where to find it:
- Open Analytics → Count Report. Choose a chart output type to see a totals chart and a change chart in place of the table, or choose Unified CSV from the export format options. Customer detail rows in the report are now clickable links to the customer record. Item Groups now each display as their own section instead of a leading column.
Multi-part exports no longer get permanently stuck
A multi-part export, such as a large Transactions Report export, could occasionally stall in a running state indefinitely and never finish — most often after a retried part had already been written but wasn't counted toward completion. Advanced Billing now tracks each completed part exactly once, so these exports reliably reach completion even after a retry or an interrupted job. (Released: 18 September 2026)
Learn more
- Why it matters:
- If you regularly run very large exports — for example, a Transactions Report spanning years of activity — you no longer risk that export sitting in a processing state forever, showing no error and producing no file to download.
- Where to find it:
- Automatic. Exports still run from wherever you start them today, and completed files still appear on the Downloads (Exports) page; no configuration change is needed. This only affects how reliably a large, multi-part export reaches a finished state.
Billing
Setup fee preserved when voiding an advance invoice
Voiding an advance invoice on a subscription with multi-frequency billing, a trial, and a setup fee charged after the trial no longer causes that setup fee to be silently dropped from future billing. The recreated billing schedule now keeps the fee's original charge type, so it bills correctly once the trial ends. (Released: 11 September 2026)
Learn more
- Why it matters:
- Previously, issuing and then voiding an advance invoice on this type of subscription — a normal, unprivileged action — could permanently remove the setup fee from the customer's billing with no error or warning, resulting in lost revenue that was easy to miss until reconciling totals against expectations.
- Where to find it:
- This applies automatically to any subscription on an Invoice Architecture site with multi-frequency billing enabled, a trial, and a product configured with a post-trial initial charge. No configuration change is needed — void an advance invoice from the Subscription Actions menu as usual, and the setup fee now carries forward correctly.
Taxable products with no tax type can now be archived
A Product that is taxable with no tax type set — a state that predates the Products catalog's tax rule — can now be archived. Previously, the save that archives the Product was refused by the same rule, and the archive screen's error message didn't name the reason. (Released: 18 September 2026)
Learn more
- Why it matters:
- Products created before your site turned on the Products catalog can be taxable with no tax type set, since the tax rule requiring one didn't exist yet. That state previously blocked retiring the Product entirely, with the archive screen only saying to check whether it was already archived — which it wasn't. You can now retire these Products without first having to backfill a tax type.
- Where to find it:
- Catalog > open a Product Family > Products tab > open the Product > Archive, or
DELETE /product_families/:product_family_id/components/:component_idvia the API. Editing a live Product to set taxable with no tax type, and un-archiving an archived Product in this state, are both still rejected and require a tax type first.
Google Pay support in the Billing Portal
Subscribers can now add or update a Google Pay payment method for their Subscription in the Billing Portal, alongside the existing Apple Pay option, when Google Pay is enabled and routed to the Maxio Payments gateway. (Released: 14 September 2026)
Learn more
- Why it matters:
- Subscribers on browsers or devices where Apple Pay isn't available — most non-Safari, non-Apple environments — now have a fast digital-wallet checkout option in the Billing Portal instead of typing in card details by hand.
- Where to find it:
- From the Billing Portal, select Update Payment Method. Google Pay appears as a payment method option once your site has Google Pay enabled and routed to the Maxio Payments gateway.
Component price points now reject intervals without multi-frequency
Sending a billing interval on a component price point create, update, bulk-create, or clone request now fails with a clear error when the Site doesn't have multi-frequency enabled, instead of silently saving a price point that never shows up anywhere in the product catalog. (Released: 14 September 2026)
Learn more
- Why it matters:
- Previously, sending an interval to a Site without multi-frequency enabled created a Price Point you couldn't see, attach to a Subscription, or clean up by archiving the Component — the only way out was enabling multi-frequency or resubmitting without the interval. Now the request is rejected up front with the reason, so you find out immediately instead of after the fact.
- Where to find it:
- Any request to create, update, bulk-create, or clone a Component's price points with
intervalorinterval_unitset. It only applies to Sites where multi-frequency billing (line_item_multi_frequencies) is not enabled; Custom Price Points are unaffected.
Insert invoice custom fields into invoice email messages
You can now insert invoice-level custom fields flagged Available on e-Bills as placeholders in invoice email messages from the Message Library, alongside the existing customer custom fields. (Released: 14 September 2026)
Learn more
- Why it matters:
- Invoice data such as a PO number, previously usable only in the Billing Line Item Description Library, can now appear directly in the invoice email itself — no manual copy-paste or workaround needed.
- Where to find it:
- From Admin > Email Message Library, add or edit a message. The placeholder drop-down now includes an Invoice Custom Fields group for any invoice custom field flagged Available on e-Bills and in use; insert its
{invoice_<reference name>}token into the Subject or Body.
Correct seller SIREN in e-invoicing documents for France
French e-invoices sent through the Avalara ELR integration now carry the correct 9-digit SIREN, so documents submitted under the FR-B2B-EINVOICE mandate pass required tax authority validation instead of being rejected. (Released: 15 September 2026)
Learn more
- Why it matters:
- French B2B e-invoices were previously rejected by the tax authority's validation because the seller's or customer's SIREN was missing from the document. Sellers submitting under the FR-B2B-EINVOICE mandate no longer hit that rejection.
- Where to find it:
- This applies automatically to every document submitted under the FR-B2B-EINVOICE mandate through the Avalara ELR integration. No setting change is required.
Corrected UBL element order for NemHandel invoices and credit notes
NemHandel invoices and credit notes now emit UBL header and body elements in the sequence required by the UBL 2.1 schema, matching what the Danish e-invoicing network expects. (Released: 15 September 2026)
Learn more
- Why it matters:
- Documents submitted under the NemHandel mandate previously listed some UBL elements out of schema order, which could cause the receiving network to reject them. NemHandel invoices and credit notes are now structured to schema, reducing the risk of a submission failing validation.
- Where to find it:
- Applies automatically the next time you submit an invoice or credit note under the NemHandel mandate, whether manually from the document screen or through the automatic sync schedule in Config > Invoicing > eInvoicing.
Company registration numbers no longer show as VAT on France e-invoices
A Customer whose only tax identifier is a company registration number, such as a French SIREN, no longer has that number shown as a VAT registration on generated France e-invoicing documents. A genuine VAT number on the Customer record is unaffected and still appears as before. (Released: 15 September 2026)
Learn more
- Why it matters:
- A Customer's e-invoicing documents no longer carry a VAT registration that was never actually assigned, so the party details on France e-invoices reflect only identifiers the Customer genuinely holds.
- Where to find it:
- This applies automatically to any Customer using Tax ID kind Company-Reg No. with no separate VAT number on file — no configuration is needed.
Open invoices no longer rejected by the Nemhandel eInvoicing network
Invoices submitted for eInvoicing now omit the optional Prepaid Amount fields when nothing has been paid or credited yet, instead of sending them as zero. The Nemhandel network read a zero Prepaid Amount as invalid and rejected the document outright. (Released: 15 September 2026)
Learn more
- Why it matters:
- If you route documents to the Nemhandel network under the Avalara ELR add-on, every open invoice was being rejected before this fix, since Prepaid Amount is zero until something is paid or credited. Those submissions now go through automatically, with no change needed on your end.
- Where to find it:
- This applies automatically the next time an invoice is submitted to Nemhandel, whether by clicking Submit to eInvoicing or through a scheduled sync, from the Avalara ELR eInvoicing settings. Partially or fully paid invoices are unaffected — they already sent a Prepaid Amount and still do.
Preserve coupon discounts on metered line items during invoice reconsolidation
Consolidated invoices for Subscription Groups now keep a member's full coupon discount when its metered usage is assessed in a later billing pass, instead of reverting to the earlier, undiscounted amount. (Released: 15 September 2026)
Learn more
- Why it matters:
- If a member Subscription in a Subscription Group has a coupon applied and metered components that get assessed in a second billing pass, the consolidated invoice previously reverted to the discount amount from the first pass and dropped the discount on the metered charges added afterward, which could overcharge the customer. The consolidated invoice now reflects the correct, fully-discounted total.
- Where to find it:
- This applies automatically to consolidated invoices for Subscription Groups whose members combine a coupon with metered/usage-based components. No configuration is needed.
QuickBooks invoice number logo now reflects actual sync status
On the invoice detail page, the QuickBooks Invoice Number no longer shows the QuickBooks logo until the invoice has actually synced to QuickBooks. Previously the logo appeared regardless of sync status. (Released: 15 September 2026)
Learn more
- Why it matters:
- A QuickBooks Invoice Number is assigned when the invoice is created in Maxio, before any sync, but the logo beside it appeared whether or not the invoice had reached QuickBooks. That could lead you to believe the invoice already existed there and stop looking for the real sync failure. The logo now appears only once the invoice has synced, so it's a trustworthy signal again. The QuickBooks ID row under Audit Info remains the outright check — it reads Not Synced until the invoice syncs.
- Where to find it:
- On an invoice's detail page, under GL Details, the QuickBooks Invoice Number row, which is shown when the QuickBooks integration is enabled. This applies automatically; no configuration is needed.
More reliable revenue totals on high-volume sites
Recalculating a site's Total Net Payments and other revenue totals previously competed with every incoming payment for the same cached value, and on sites with a very large number of transactions that contest could repeat for hours or days without ever completing. Maxio now recalculates revenue in smaller batches and lets only the most recently started recalculation publish its result, so it finishes reliably even while new payments keep arriving. (Released: 17 September 2026)
Learn more
- Why it matters:
- If your site processes a high volume of payments, the Total Net Payments and Net Payments Today figures on your Site Dashboard could previously show a stale or blank number for hours or days after a large backlog of activity, while the total was still being recalculated. It now updates reliably no matter how many payments arrive while a recalculation is in progress.
- Where to find it:
- Automatic. The Total Net Payments card on the Site Dashboard, and the revenue totals shown alongside it, are unchanged in how you use them; they simply become accurate and complete more reliably on sites with a large transaction history. No configuration is needed.
Product billing date change rebuilds the schedule when the date matches a component assessment
Changing a Product's billing date on a multi-frequency Subscription now rebuilds its future billing schedule in the case where the requested date matches a Component's already-scheduled assessment date. Previously that case silently skipped the rebuild, so the Product's charge could be missing from the next renewal invoice with no visible error. (Released: 17 September 2026)
Learn more
- Why it matters:
- If you run multi-frequency billing — for example, an annual Product alongside a monthly Component — you can now trust that an explicit Product billing date change carries the Product's future charges forward in this case, instead of occasionally dropping one from the next renewal with nothing to flag it.
- Where to find it:
- Automatic for any Product billing-date change on a multi-frequency Subscription, whether made from the Subscription's Products tab, a bulk billing-date change, or the
PUT /subscriptions/:idAPI endpoint withnext_billing_at. No configuration is needed.
Avalara no longer posts documents for zero-amount prepaid charges
Zero-amount and fully discounted prepaid charges on a settled statement no longer create a tax document in your connected Avalara account, matching how invoices already skip zero-amount documents. (Released: 17 September 2026)
Learn more
- Why it matters:
- If you use Avalara's own-account integration with Post Documents enabled, and any of your Subscriptions bill $0 (for example, a free plan on a short renewal interval), Avalara previously billed you for a document with no tax significance on every renewal, and it appeared in your filed Avalara transaction history. Those documents are no longer created.
- Where to find it:
- Applies automatically to statement-based (non-invoice-centric) billing with Avalara's own-account integration and Post Documents enabled. No configuration change is needed.
Accurate renewal estimate and proforma invoice preview before auto-renewal lock-in
For a Term Subscription with a pending Maxio Core Auto-Renewal configuration, the Upcoming Renewal Notice estimate, the renewals preview, and the term-renewal Proforma Invoice now report the actual upcoming term's recurring charges - with the Renewal Factor applied - instead of an unrelated pending charge or stale, un-uplifted pricing. (Released: 17 September 2026)
Learn more
- Why it matters:
- Before this fix, the estimated renewal amount and the term-renewal Proforma Invoice preview for these subscriptions could show a number well below what the renewal actually billed, and a Proforma Invoice's component lines could show a unit price and subtotal that didn't multiply out correctly. Both now match what actually bills, to the cent.
- Where to find it:
- The Upcoming Renewal Notice email and its estimated renewal amount, the
renewals/previewAPI endpoint, and a Term Subscription's Proforma Invoice preview - for any subscription on a Site paired with Maxio Core with a pending Auto-Renewal configuration, both before and after its Lock-in Date.
Resuming a multi-frequency subscription no longer drops component billing
Resuming a canceled Subscription with multi-frequency billing now restores billing for every allocated Component, including ones using the Component's default price point, instead of silently dropping some from future invoices and renewals. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, a Component allocated at its default price point could vanish from a Subscription's billing schedule the moment you resumed it after canceling within the same billing period — with no error, and no way to notice until the Component stopped appearing on invoices and renewal proformas. Resuming now restores every allocated Component's billing coverage, closing a gap that could leave a Customer unbilled for a Component indefinitely.
- Where to find it:
- This applies automatically when you resume a canceled multi-frequency Subscription — from Subscription Actions > Reactivate, choosing to resume the existing billing period rather than start a new one. No configuration change is needed.
Group service credits stay applied after a segment leaves a consolidated invoice
Removing a member Subscription's segment from a consolidated invoice -- through cancellation, reassignment, voiding, reactivation, or banishment -- no longer strips its share of a Subscription Group's service credit from the parent invoice. The credit now stays applied, trimmed to whatever the parent's remaining total can absorb. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, removing a credited segment could inflate the consolidated invoice's due amount by the credit amount that segment was carrying, since a group-level credit had no way to be told apart from the segment's own personal credit. Group service credits now stay correctly applied to the parent, so the due amount reflects what's actually owed.
- Where to find it:
- This applies automatically to consolidated invoices for Subscription Groups with an active group-level service credit, whenever a member's segment is removed -- including cancellation, reassignment, voiding, reactivation, or banishment. No configuration is needed.
Correct definitive pricing validation for multi-tier component price points in offers
Creating a termed offer that includes a component priced with volume, tiered, or stairstep pricing no longer fails with an incorrect "does not have all definitive pricing defined" error when every pricing tier is fully priced for the site's currencies. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, adding a fully-priced multi-tier component to an offer with a termed product price point could fail validation even though every tier had definitive pricing set for every site currency -- the check counted one row per tier per currency instead of one row per currency, so any price point with more than one pricing tier could never pass. That blocked creating the offer outright, with no workaround short of removing the multi-tier pricing.
- Where to find it:
- In the Offer builder (Catalog > Offers > + Create Offer), when adding a component priced with volume, tiered, or stairstep pricing to an offer that also includes a termed product price point. Requires
line_item_multi_frequenciesandbrighton_v1enabled for the site.
Configure wallet-backed features and grant expiration from the feature catalog
Catalog > Features now lets you back a Limit feature with a wallet — naming it, choosing the Wallet Product and price point it bills through, and setting what happens to usage beyond the balance — and set a grant-expiration policy (never, after a set number of days or months, or when the next refill arrives), directly from the feature's create/edit screen. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, wallet-backed features and expiring grants could only be set up by calling the API directly. Now you can configure both from Catalog > Features like any other feature setting, with no integration work required.
- Where to find it:
- From Catalog > Features, create or edit a Limit feature. A Granted units expire control appears alongside the other limit settings, and — on sites with the wallets feature enabled — a new Wallet section lets you back the feature with a wallet. The billing-product picker only lists Wallet Products that already carry an active price point.
Skip reCAPTCHA challenge setting now covers Maxio-hosted pages
The Skip reCAPTCHA challenge setting, shown only for test-mode sites, previously bypassed reCAPTCHA verification only for a merchant's own standalone Maxio.js integration. It now also applies to Maxio-hosted pages authenticated with your site's internal key, including the Billing Portal, Public Signup Pages, and public invoice pages. (Released: 17 September 2026)
Learn more
- Why it matters:
- If you run automated test flows against a test-mode site's Billing Portal, Public Signup Pages, or public invoice pages, reCAPTCHA no longer blocks those flows when this setting is on. Previously it only stopped blocking your own Maxio.js pages, so automation against Maxio-hosted checkout surfaces still hit the challenge.
- Where to find it:
- Config > Settings > Public Page Default Settings, the Skip reCAPTCHA challenge checkbox. It's shown only for sites in test mode and has no effect on a live site.
Wallets are now provisioned automatically from wallet-backed limit features
A subscription that becomes entitled to a wallet-backed Limit feature is now provisioned a funded, self-refilling wallet automatically, with no API call or manual step required. Removing the feature stops funding without touching the wallet's balance, and adding it back resumes funding on the same wallet. (Released: 17 September 2026)
Learn more
- Why it matters:
- Previously, giving every new subscriber a working wallet balance for a wallet-backed limit meant creating the wallet yourself through the API after each subscription started. Now it happens on its own the moment the subscription is entitled to the feature, and switching the feature off and back on preserves the existing wallet and its balance instead of starting over.
- Where to find it:
- Turn on the Wallet toggle on a Limit feature under Catalog > Features, point it at a Wallet Product, and attach the feature to a Plan or Product as usual. The wallet then appears automatically on the subscription's Wallets tab as soon as the subscription is entitled to that feature — no separate setup step is needed. Also new:
GET /walletsandGET /wallets/:idnow returnorigin(manualorfeature) andfeature_key, so you can tell how each wallet came to exist.
Searchable product and plan selector on email settings pages
Email settings that let you send only to certain products or Plans — Signup, Customer Receipt, Cancellation, Card Expiration, End of Trial, Term Renewal, and Prepaid Subscription Payment Receipt/Reactivated/Suspended emails — now use a single searchable, multi-select list grouped under Active products and Archived products, replacing a separate checkbox list on each page. (Released: 17 September 2026)
Learn more
- Why it matters:
- Finding the right product or Plan on a site with a long catalog no longer means scrolling a checkbox list — type to filter, and the selector's button tells you at a glance how many you've selected ("3 products selected," "All products selected").
- Where to find it:
- Go to Config > Settings > Emails, open any of the listed email types, and choose "only the products I choose" (or "only the Plans I choose"). Click the button beneath that option — labeled Choose products until you make a selection — to search and select. On sites that allow productless Subscriptions the groups read Active Plans and Archived Plans; on End of Trial Emails they read Currently offering a trial and Archived products that offered a trial.
Show attribution for activity events
The Activity page and each subscription's Activity tab now have a Show Attribution toggle that reveals who initiated an event — the user or the API key that made the change. (Released: 17 September 2026)
Learn more
- Why it matters:
- Support and admins previously had to dig through the 90-day audit log, and often couldn't correlate it with a specific event, to answer who made a given change. Attribution is now a permanent part of the event itself, so you can trace an unexpected subscription change or a support question back to its source without leaving the Activity view.
- Where to find it:
- Go to Tools > Activity, or a subscription's Activity tab, and click Show Attribution. Available to users with Admin access or higher; a linked user or API key preview appears beneath each event that has one.
Wallet details now show where a wallet came from, and accurate refill-stopped reasons
A subscription's wallet now shows a Source field naming whether it was provisioned from a feature or created manually, and the message shown when a feature-funded wallet's refills stop no longer suggests creating a second wallet for the replacement feature. (Released: 17 September 2026)
Learn more
- Why it matters:
- Provisioned wallets and manually created ones use the same refill schedule shape, so there was previously no way to tell which was which just by looking. The old stopped-refill message also told you to create a new wallet against the replacement feature to resume funding — advice that, now that a replacement schedule is created automatically, would only get your request rejected as a duplicate.
- Where to find it:
- On a subscription's Wallets tab, open a wallet to see its Source row on the Details card. If its refills have stopped, the reason shown beneath the status tag now names the specific cause and, where one applies, what to do about it.
Metered wallet usage now posted to the ledger
A wallet paired with a meter now gets a durable ledger entry for its usage whenever a grant is fully depleted, a grant expires, or its recurring usage window closes — instead of that usage staying a display-only preview of the balance. (Released: 17 September 2026)
Learn more
- Why it matters:
- A metered wallet's shown balance already reflected reported usage in real time, but until now that usage was never posted to the ledger itself, so the wallet's grant-by-grant breakdown could keep showing more remaining balance than the wallet actually had left, with no record of when the underlying usage was drawn down. Usage is now committed to the ledger on the same events that already matter to a wallet — a grant running out, a grant expiring, or its usage window closing — so the breakdown and the ledger catch up with what the balance already showed, and support has an auditable record of exactly what consumed each grant.
- Where to find it:
- On a subscription's Wallets tab, open a metered wallet and view its Ledger — new entries from this settlement appear alongside existing grant, adjustment, and expiration rows. A wallet configured to discard usage past zero also now shows a note below its ledger explaining that usage recorded while the wallet was empty stays in the meter and isn't shown there, even after a later top-up.
Fixed prepaid receipt emails falling back to the standard template
Receipt emails sent with a PDF invoice attached now reliably send even when the invoice is slow to finalize, and a Prepaid Subscription's receipt always uses the prepaid-specific template instead of occasionally falling back to the standard receipt email. (Released: 18 September 2026)
Learn more
- Why it matters:
- Customers on Prepaid Subscription billing now get the receipt email that actually reflects their prepaid plan instead of sometimes receiving the standard receipt, and any customer whose invoice takes longer than a few seconds to finalize is now guaranteed to get a receipt (without the PDF) shortly after, rather than the email being silently stuck.
- Where to find it:
- No action needed — this applies automatically. The PDF attachment itself is controlled by the single Attach paid invoice PDF to receipt emails checkbox in the Customer Receipt Emails section, under Config > Settings > Emails; the Prepaid Subscription Payment Receipt Emails section has no PDF control of its own.
Calendar billing subscriptions can now bill components on a multi-month interval
Subscriptions with Calendar Billing enabled can now use Components billed on any month-based interval, such as quarterly or every 4 months, instead of being limited to a Component billed exactly every month. Each Component's billing periods still snap to the Subscription's Billing Day, spaced by its own interval. (Released: 21 September 2026)
Learn more
- Why it matters:
- Previously, a Component with a billing interval longer than one month — for example, a quarterly maintenance fee — couldn't be allocated to a Calendar Billing Subscription or included when one was created: the attempt failed outright with a validation error, forcing you to either drop Calendar Billing or bill that Component monthly instead. You can now keep a predictable, calendar-aligned billing date for the whole Subscription while still billing individual Components on their own longer cadence.
- Where to find it:
- Allocate a Component whose Price Point has a billing interval of more than one month — for example, an interval of 3 months — to a Subscription with Calendar Billing enabled (a Billing Day set), from the Admin UI or the API. The same Component can also be included when the Subscription is created, from the Admin UI, a Public Signup Page, or the API. Requires multi-frequency billing (
line_item_multi_frequencies) enabled for the Site; a Component whose Price Point bills in days, such as a weekly cadence expressed as 7 days, still can't be used on a Calendar Billing Subscription, whether allocated or included at signup.
New invite accepted date in Billing Portal Status
The Subscription page's Billing Portal Status section now includes an Invite Accepted row, showing the date a customer accepted their Billing Portal invitation. It reads Not Accepted if they haven't accepted yet, or if their portal access was revoked. (Released: 21 September 2026)
Learn more
- Why it matters:
- Previously, the Subscription page showed when a customer was added to the Billing Portal and when their last invite was sent, but not when they accepted it — that date was available only on the Customer record over the API. It is now visible directly on the Subscription's own page, next to the related Added To Portal and Last Invite Sent dates.
- Where to find it:
- Open a Subscription's detail page and look at the Billing Portal Status section. The new Invite Accepted row appears below Last Invite Sent, showing the accepted date or Not Accepted.
Selling
New renewal opportunity start date field mapping for Salesforce
Salesforce Opportunity field mappings on a Renewal Opportunity rule now include a Renewal Opportunity: Start Date option, so a mapped Opportunity field can carry the same derived start date used elsewhere in the rule. (Released: 14 September 2026)
Learn more
- Why it matters:
- Previously, the renewal start date used in a rule's Opportunity Name and Description templates and the value sent through a mapped Opportunity field were each calculated independently, which risked the two disagreeing if the Transactions grouped into an Opportunity didn't actually share an end date. The new mapping option guarantees the mapped value always matches the template value, and the underlying calculation now raises an error instead of silently picking a date when a group's end dates don't match.
- Where to find it:
- In the Salesforce integration settings, on the Send Renewal Opportunities tab, open a Renewal Opportunity rule and, under Opportunity field mapping, select Renewal Opportunity: Start Date as the field to map.
Deletion records now persist after a Salesforce delete sync
Deletions synced through the Salesforce Send Financial Records integration's Delete option used to disappear from Maxio's deleted-records API after being sent to Salesforce once. They now remain available. (Released: 14 September 2026)
Learn more
- Why it matters:
- If you rely on the deleted-records API to reconcile what's been removed, you no longer lose that history the first time it syncs to Salesforce — deletion records stay queryable going forward, the same way they always should have.
- Where to find it:
- No UI change. This affects the deleted-records API endpoints (Transactions, Invoices, Customers, Contracts, Payments, and others) whenever the object's Send Financial Records setting has Delete enabled in the Salesforce integration configuration.
New project PO number field mapping for Salesforce, HubSpot, and Pipedrive
Salesforce, HubSpot, and Pipedrive Get Sales Orders field mappings now include a Project PO Number target field, so a mapped CRM field or a fixed text value can carry a Purchase Order Number onto the Project created when a Sales Order is processed. (Released: 17 September 2026)
Learn more
- Why it matters:
- If you originate deals in Salesforce, HubSpot, or Pipedrive, you no longer need to manually enter a Purchase Order Number on the Project after it's created — mapping a CRM field (or a fixed value) to Project PO Number carries it through automatically, and from there to invoices generated for that Project that don't already carry a Purchase Order Number of their own.
- Where to find it:
- In the Salesforce, HubSpot, or Pipedrive integration settings, open the Get Sales Orders field mappings (Update Mappings) and map a field to Project PO Number, grouped with Project Template and Project Name. The mapped value pre-fills the Project PO Number field on the Process Sales Order wizard's Create Project step, and remains editable before submission.
Self-service clear all CRM IDs action for HubSpot
The HubSpot integration's Send Financial Records tab now has a Clear All CRM IDs action that lets an Administrator clear stored Customer and Deal/Deal Line Item HubSpot CRM IDs directly, without contacting Maxio Support. (Released: 15 September 2026)
Learn more
- Why it matters:
- Customers migrating off a legacy CRM onto HubSpot can now clear stale Customer and Deal/Deal Line Item CRM IDs themselves and rebuild their HubSpot associations, instead of waiting on Maxio Support to do it for them.
- Where to find it:
- In the HubSpot integration settings, on the Send Financial Records tab, click the new ban icon labeled Clear All CRM IDs. Select Customer, Deal / Deal Line Items, or both, then type YES and click Proceed — clearing an ID is not reversible, so make sure you can re-establish the HubSpot associations first. If HubSpot isn't your currently connected CRM, Maxio rejects the submission in place and nothing changes.
Payments
Apple Pay with Braintree works again on Public Signup Pages
Apple Pay checkout through the Braintree gateway on Public Signup Pages had stopped working, showing every customer an unsupported-browser message regardless of their actual browser or device. This is now fixed, and Apple Pay checkout works as configured. (Released: 14 September 2026)
Learn more
- Why it matters:
- Customers signing up through a Public Signup Page with Apple Pay selected as the payment method — including on a fully supported Safari and Apple device combination — could not complete checkout with Apple Pay. No merchant-side configuration change is needed to restore it.
- Where to find it:
- Public Signup Pages using the Modern (v2) layout, for sites with Multi-Gateway enabled and Apple Pay configured through the Braintree gateway.
Billing address fields display again on legacy Self-Service Pages
Billing address fields, including the card number field, had disappeared from the legacy Self-Service Page's payment update form whenever a wallet-eligible payment method was configured, and are now restored. (Released: 17 September 2026)
Learn more
- Why it matters:
- Subscribers on affected sites could not see or complete the billing address fields needed to update their payment profile from the legacy Self-Service Page, blocking that self-service action entirely.
- Where to find it:
- The legacy Self-Service Page used to update a Subscription's payment profile, for sites with a wallet-eligible payment method routed through Maxio.js (formerly Chargify.js) configured.
Developer Experience
Reports API adds row-level JSON results and a retain action
The Report Runs API now includes a results action that returns a completed report run's data as paginated JSON — sections, columns, and rows — for either storage format, plus a retain action that lets you keep a run's stored results past the standard purge window. (Released: 14 September 2026)
Learn more
- Why it matters:
- Pull structured report data directly as JSON instead of parsing a CSV or spreadsheet export, and hold onto a specific run's results for as long as you need them instead of having them purged five days after the run completes.
- Where to find it:
- Call
GET /api/v1.0/reports/runs/{id}/results/to read a completed run's results, andPOST /api/v1.0/reports/runs/{id}/retain/with{"keep": true}to toggle retention. Both are available to any Reports API user; retention can also be set when you create the run viakeep_serialized_data.
Promise to pay date now available on the invoice API
The Invoice API's GET and LIST endpoints now return a read-only promise_to_pay_date field, matching the Promise to Pay date already visible on an invoice's Collections Settings tab. (Released: 15 September 2026)
Learn more
- Why it matters:
- Integrations that read invoice data -- for example, a collections dashboard or automated outreach tooling -- can now see whether, and until when, a customer has promised to pay, directly from the API instead of cross-referencing the UI.
- Where to find it:
- The
promise_to_pay_datefield appears in Invoice API responses, documented at Admin > Settings > API Documentation. It's read-only; set or clear the date from the invoice's Collections Settings tab in the UI.
Still need help?
Reach out and our support team will take it from here.
