Choose how a customer's invoices are grouped
Deciding whether a customer receives one invoice for the period or several, and on what basis they are divided.
Before you start
Section titled “Before you start”Be clear on why the customer wants their invoices split. The four modes look similar and produce very different paperwork, and the wrong one is only obvious after a run.
The four modes
Section titled “The four modes”One invoice per job. Every completed job becomes its own invoice. Use it when a customer treats each delivery as a separate transaction — for example when each job is billed to a different project and they need to pass invoices on individually.
Group by reference. Jobs are gathered by the reference on the job; each distinct reference produces one invoice. Use it when a customer’s own system works in cases, orders or batches, and they want one invoice per case.
Jobs with no reference do not pile up together — each one gets its own invoice. If a customer expects “everything unreferenced on one invoice”, this mode will surprise them.
Split at an amount. Jobs are taken in date order and a new invoice starts whenever adding the next one would take the running total past a limit you set. Use it when a customer has an approval ceiling — invoices above a certain value need extra sign-off, so they would rather receive several smaller ones.
If no limit is set, 5000 is used.
Separate one reference. You nominate a reference value. The customer gets two invoices: one containing every job carrying that reference, and one containing everything else. Use it when a customer runs one regular programme of work that they want billed together and kept apart from their ad-hoc jobs.
This produces two invoices, not one per job. Every non-matching job goes together on the second invoice.
-
Confirm which mode the customer wants, using the descriptions above.
-
Go to and press View on the customer.
-
On the Details tab, find Billing Configuration — .
-
Set Invoice Splitting. The choices are:
- No splitting — one invoice for the period (the default)
- One invoice per job
- Group by reference number
- Split when total exceeds limit
- Separate invoice by reference filter
Only one applies to a customer at a time.
-
If the mode needs a value, set it — the limit for Split when total exceeds limit, or the reference to nominate for Separate invoice by reference filter.
-
Save, then run invoicing as usual from . Grouping is applied during the run.
Good to know
Section titled “Good to know”Only completed, non-voided jobs are considered. A customer with one job or none gets one invoice regardless of the rule. The first group keeps the original invoice number — the additional invoices are new numbers. And a customer has one grouping rule, not several; the limit on a split-at-an-amount rule and the reference on a separate-one-reference rule are chosen per customer.
If something goes wrong
Section titled “If something goes wrong”Nothing split. The most common causes: only one job qualified, or the jobs were not completed. Grouping ignores incomplete and voided jobs entirely.
More invoices than expected on a group-by-reference rule. Check for jobs with no reference. Each of those becomes its own invoice.
Only two invoices when you expected many. That is separate-one-reference working as designed — it always produces two.
Related
Section titled “Related”Internal: how this page was verified draft
- Checked by
- kenneth on 2026-07-31
- How
- ui-walkthrough, source-check, schema-check
- Where
- staging · otgcargo · logged in as internal-staff
- Against
- ui: Accounts > Clients > (client) > Details > Billing Configuration, walked 2026-07-31 on the OTG tenant. The Invoice Splitting dropdown offers exactly: No splitting, One invoice per job, Group by reference number, Split when total exceeds limit, Separate invoice by reference filter
- accounts Core/Application/Services/InvoiceService.cs — ApplySplittingRulesAsync, strategy branches PER_JOB / GROUP_BY_REF / AMOUNT_LIMIT / FILTER_BY_REF, matching those five options in order
- same method — filters to jobs where !UcjbVoid && UcjbJobDone; returns early when jobs.Count <= 1; first group retains the original invoice
- schema: TblClientInvoiceSplitRule (ClientId UNIQUE, Strategy, AmountLimit, RefFilter) from migration 20260727113526_InvoiceSplitRulesTable.sql
- AMOUNT_LIMIT default is 5000 when AmountLimit is null; jobs ordered by date then id
- Likely to change
- high — The feature was added on 2026-07-27 and is explicitly not released to customers. Four defects are recorded against it, including no guard preventing an already-sent invoice from being split. Both the behaviour and the screen may change before release.
- Re-check by
- 2026-08-31 — overdue
- Config-dependent
- 3 item(s) called out on this page
- Screenshots
- 1 still to capture
- Open questions
- Whether grouping can also be chosen per invoice run. It is set per customer; the engine reads that saved rule and no per-run override was found.
- Where the limit and the reference value are entered once a mode needing them is chosen — the extra field did not appear while the mode was No splitting.
- Walked on a different tenant's build — confirm the Invoice Splitting control is present and worded the same on the baseline build, and whether the feature is enabled there at all (it is new and not released to customers).
- Baseline check 2026-09-24: the Accounts host on the baseline organisation bounces straight to a Xero login, so the Billing Configuration screen could not be re-verified there. The source-code half of this page's provenance stands; the UI half is from a previous tenant.