How it works
- Consolidation is a per-customer setting (
Consolidate invoicestoggle on the customer). - Each eligible invoice is grouped by the day it was scheduled to bill, in the customer’s timezone.
- Once the day has fully elapsed, Hyperline merges every held invoice for that day into a single new invoice — the aggregate — and marks the source invoices as Consolidated.
- The aggregate is what gets finalized, numbered and charged. Source invoices never receive a number of their own.
What’s eligible
Only invoices that meet all of these are held for consolidation:- The customer has
Consolidate invoicesenabled. - The invoice comes from a subscription (one-off invoices, documents and credit notes are excluded).
- The invoice is not from an external source (imported invoices go through their own flow).
- The invoice is of type
invoice(credit notes and other document types are excluded).
Grouping by day
Invoices are grouped by their billing date in the customer’s timezone:- Bill-in-advance invoices group on the period start.
- Bill-in-arrears invoices group on the period end.
- Backdated subscriptions (a subscription created after its start date) group on the day they would have billed, not the day the catch-up invoice was actually emitted.
The merge
Hyperline waits until:- The consolidation day has fully elapsed in the customer’s timezone, and
- There are no pending renewals or in-flight invoices for that day still to land.
- Every line item from every source invoice is copied over, prefixed with the source subscription name so you can trace what came from where.
- Line-item amounts, tax rate, tax amount, discounts, proration and debit/credit sign are preserved verbatim. The aggregate total equals the sum of the source invoices.
- The aggregate carries no
subscriptionIdof its own (it spans several), so it is never itself held for consolidation.
Enable consolidated invoicing for a customer
The toggle lives on the customer page, in the Advanced section of the customer edit form.
The current state is shown on the customer panel as a tag (Enabled / Disabled) next to the
Consolidate invoices label, alongside the other invoicing settings.
You can turn consolidated invoicing off at any time — but if the customer has invoices currently held (
Pending consolidation), you’ll need to let those merge (or delete them) before the toggle takes effect on new invoices.Invoice statuses
Consolidated invoicing introduces two invoice statuses in addition to the standard ones:Pending consolidation The invoice is held, waiting for the daily merge. It has no invoice number yet and hasn’t been charged. Only action available: delete (see below).
Consolidated The invoice was merged into an aggregate. It links to the aggregate invoice via linkedInvoiceId. The source is kept for record-keeping but the aggregate is what’s charged.
Both statuses appear in the invoice list and on the invoice detail page.
The invoice detail page
Hyperline surfaces the consolidation relationship directly on the invoice page:- On a
Consolidatedsource invoice: a callout at the top of the page links to the aggregate the invoice was merged into. - On an aggregate invoice: a callout at the top of the page shows the number of source invoices consolidated into it and links to the filtered list of those sources.
Actions on held invoices
APending consolidation invoice is an internal, un-numbered state — it isn’t a document to send. The available actions are limited on purpose:
- Delete is allowed, so you can drop an invoice out of the day’s group before it merges (for example, if the underlying subscription change was wrong).
Stuck consolidations
A group won’t merge until the day is complete. Hyperline waits on:- Any subscription renewal for that day that hasn’t fired yet.
- Any peer invoice for the same day still in
grace_period,draftor otherwise in-flight.
Consolidated invoicing and organisation-based billing
Consolidated invoicing composes with organisation-based billing:- If the customer is an org child, the aggregate is routed to the parent following the child’s org invoicing configuration (
Individual invoices→Charged on parent,Grouped→Pending parent concat). The parent collects payment as usual. - If only a single invoice ends up being held for the day, that lone invoice is routed to the parent directly rather than being finalized standalone.
Notes and limitations
- Consolidation happens at most once per customer per calendar day (in the customer’s timezone). Two subscriptions billing on the same day are merged; two subscriptions billing a day apart are not.
- Held invoices don’t get an invoice number — numbering is assigned to the aggregate when it’s finalized. Your invoice number sequence is unaffected by consolidation (only the aggregate consumes a number).
- Credit notes are never held for consolidation and follow the normal flow.
- Tax is copied per-line from the source invoices rather than re-resolved by the tax engine, so the aggregate total is guaranteed to equal the sum of the sources.

