Xero CIS Reporting: What the Construction Industry Scheme Needs Beyond the Monthly Return

Published

10 mins read

Xero CIS Reporting: What the Construction Industry Scheme Needs Beyond the Monthly Return

Xero files the CIS return. Everything around it still lives in a spreadsheet.

It's the 17th. The bookkeeper at a building contractor has this month's subcontractor tax return ready in Xero: forty-one tradespeople paid, £31,900 of tax held back from them. Two clicks and it's filed. Then the director rings. The bigger firm that hired them for the school job has been holding back 20% of every invoice since spring. How much is that now? Can it come off this month's tax bill? Do we have the paperwork to claim it?

Those are the two sides of the Construction Industry Scheme (CIS). Xero CIS reporting answers the bookkeeper's side. The director's questions aren't answered by any single Xero report, and that gap is what this post is about.

How the Construction Industry Scheme works

CIS is how HMRC, the UK tax authority, collects tax from construction workers as they're paid rather than at the end of the year. When a contractor pays a subcontractor for construction work, it holds back part of the payment and passes it to HMRC as an advance on the subcontractor's own tax.

  • How much is held back. Before paying a new subcontractor, the contractor checks them with HMRC. This is called verification, and HMRC replies with the rate: 20% if the subcontractor is registered for CIS, 30% if not, and nothing if they hold gross payment status. Gross payment status is HMRC's permission to be paid in full, given to businesses with a record of paying their tax on time.
  • What it applies to. Only the labour part of the invoice. VAT, materials the subcontractor bought, equipment hire and fuel are taken off before the rate is applied.
  • When it's due. CIS runs on a tax month, from the 6th of one month to the 5th of the next. By the 19th, the contractor files a monthly return listing every subcontractor it paid. By the 22nd, it pays HMRC the tax it held back, in the same payment as its payroll taxes. Each subcontractor also gets a payment and deduction statement: a monthly slip showing what they were paid and how much was held back. A late return costs £100 straight away, and more at two, six and twelve months.

For the subcontractor, the money held back isn't lost. It counts towards their own tax, and accountants call it CIS suffered. A sole trader claims it on their annual Self Assessment tax return. A limited company claims it month by month through payroll: it reports the year's total so far on the Employer Payment Summary, a monthly payroll filing to HMRC, and HMRC takes it off what the company owes in payroll taxes. The contractors' statements are the company's evidence for that claim.

This is the part that matters for reporting. Most construction businesses of any size sit on both sides at once. A bigger firm holds back tax from them, and they hold back tax from the smaller trades they hire. Each month they owe HMRC what they held back from others, less what others held back from them. Xero handles each side well, but separately.

Where native Xero CIS reporting stops

Xero covers the compliance basics. With its CIS Contractor add-on, you verify subcontractors from their contact record, Xero works out the tax to hold back on each bill, and you file the monthly return straight from Xero. The gaps are in everything around that.

The return only sees bills. In Xero, a bill is a supplier invoice you enter before paying it. Xero only works out CIS when the subcontractor's contact is marked as a CIS subcontractor and the bill uses one of the two CIS expense accounts Xero sets up, CIS Labour Expense or CIS Materials. Pay a subcontractor straight from the bank feed without a bill (a "spend money" payment in Xero) and that payment never reaches the return. For a contractor paying 80 to 120 subcontractors a week, that means a bill for every person, every week. A request on Xero's public ideas board to change this has had no reply from Xero since July 2024.

Materials-only bills drop off the return report. Users report that a bill with only CIS Materials lines doesn't appear on Xero's monthly return report. That means the materials account in the books can't be checked against the report without a separate list of what's missing.

The two sides sit in different reports. Tax you hold back from subcontractors is in the CIS Contractor report. Tax held back from you is in the CIS Suffered report. Users have asked for both in one report since at least January 2023. In February 2026, Xero said its product team was "keeping an eye on" the idea, with no date. Until then, working out what you owe HMRC each month means taking one report away from the other by hand.

Credit notes can throw the CIS Suffered figure off. Users report that when a credit note is applied to an invoice with both labour and materials on it, the CIS Suffered report shows less tax held back than there really was. Claim from that report, and the claim comes out too low.

Xero doesn't track statements. A company claiming back CIS needs a statement from every contractor that held tax back from it. Xero records the deductions, not whether the statements arrived. Asked to add this, Xero replied in July 2026: "This isn't something we have plans for atm." Chasing missing statements happens in a spreadsheet.

One organisation at a time. Each CIS report covers only the Xero organisation you're logged into. A group with two construction companies, or an accounting firm with thirty construction clients, gets no view across them.

What hitting the wall looks like

The bookkeeper paying ninety subcontractors every Friday. Each payment needs a bill entered first, on the right CIS account, or it quietly drops off the return. The month-end check is a bank export compared line by line with the return, looking for anyone paid without a bill. It's the same rebuild-by-hand routine as management accounts that were never set up to reconcile.

The finance manager at a plasterboard subcontractor. Three bigger contractors each hold back 20% of the labour on every invoice. That cash only comes back as the company claims it against its payroll taxes, so the cash flow forecast is wrong unless it knows when each claim will land. One contractor's statements arrive two months late, another's don't match the invoices, and checking the running total takes a day every quarter.

The partner at an accounting firm with thirty construction clients. Every client has a return due on the 19th and a payment due on the 22nd. HMRC's systems show what was filed. Nothing shows whose books are up to date enough to file. For clients with gross payment status, being late costs more than the fine. HMRC reviews the status every year and tolerates only a little lateness. A business that loses it waits a year to reapply, with 20% held back from every invoice in the meantime. Since 6 April 2026, HMRC can also remove it immediately, and bar the business from reapplying for five years, if it knew or should have known that a payment was connected to fraud. It's the same problem Making Tax Digital for Income Tax created for firms with sole-trader clients: many clients, many deadlines, no single view of who's ready.

The operations director asking which jobs make money. Subcontractor labour is booked at the full invoice amount, the tax held back sits in a separate account until it's paid to HMRC, and none of it is tagged to a job. Profit by job is a separate build, covered in project profitability in Xero.

What good CIS reporting looks like

Whoever builds it, CIS reporting worth having does six things:

  1. Checks every month that the CIS balance adds up. Tax held back sits in an account in the books until it's paid to HMRC. Last month's balance, plus what this month's return says was held back, less what was paid to HMRC, should equal what's in the account now. A difference points to a payment that skipped a bill, or a bill on the wrong account.
  2. Puts both sides on one page. For each tax month: tax held back from subcontractors, tax held back from you so far this tax year, how much of that has been claimed through payroll, and what's left to claim. HMRC expects limited companies to keep this record anyway.
  3. Matches every deduction to a statement. Each of your invoices that had tax held back is matched to the contractor's statement. The missing ones are listed by contractor, so someone knows who to chase.
  4. Flags problems before the 19th. Subcontractors paid without a bill, bills to subcontractors on non-CIS accounts, invoices whose labour and materials split looks unusual for that subcontractor, and new subcontractors paid before they were verified.
  5. Covers every company, or every client, at once. One view of each organisation's return, the amount owed, the payment date and its on-time record, because gross payment status depends on a whole year of punctuality.
  6. Traces every figure to Xero. So the report can be checked, not just trusted.

The workarounds, ranked

1. Xero's own CIS reports. Accurate, and the right place to file from. Each answers one question for one organisation, and none checks itself against the accounts.

2. Separate CIS software. Dedicated CIS and payroll products handle verification, returns and statements well, often for many contractors at once. But they're a second system to type data into, and they can't see the Xero accounts, so the checking still happens somewhere else.

3. The spreadsheet. Export the CIS reports, the CIS account and the bank account each month, and join them up by hand. This is what most businesses and firms run today. It works until the person who maintains it is on holiday on the 17th.

4. Building on Xero's API. Xero's API, the connection other software uses to read Xero data, includes CIS settings, so an automated monthly check can be built. It's real engineering, with the usual Xero API pitfalls along the way.

Where Cheetah fits

Cheetah doesn't file CIS returns. Xero does that, and HMRC's online services show what's been received. What we build is the reporting around the return. Cheetah connects to every Xero organisation in a group or on a client list and produces the monthly CIS balance check, both sides on one page, the list of missing statements and the problem list for the week before the 19th. Each is built to match your accounts and refreshes every month without an export.

For a contractor, that's a return you can check before filing it. For a subcontractor, it's a payroll claim you can back up. For an accounting firm, it's one list of which construction clients need attention this week.

If the week before the 19th still means three exports and a spreadsheet, Cheetah is worth a look.

The short version

Xero handles the CIS paperwork well: it verifies subcontractors, works out the tax on bills and files the monthly return. It doesn't produce the reports a construction business needs around that. The two sides of CIS sit in separate reports, payments without a bill and materials-only bills fall out of the return report, statements aren't tracked, and nothing works across organisations. Each gap is a monthly manual job today, and each can be built once from data already in Xero. For how that kind of reporting gets built, see what a custom Xero report takes to build.

Frequently asked questions

Can Xero file the CIS monthly return to HMRC?
Yes. With Xero's CIS Contractor add-on on a UK plan, you can check subcontractors with HMRC from their contact record, have Xero work out the tax to hold back on each bill, and file the monthly return directly from Xero. A business that has tax held back by its own customers uses Xero's separate CIS Suffered report to see those amounts.
Why doesn't my CIS monthly return in Xero match my CIS materials account?
Xero builds the return from bills (supplier invoices entered in Xero) for contacts marked as CIS subcontractors. Users report that bills containing only materials don't appear on the monthly return report, and payments made straight from the bank without a bill aren't picked up at all. Checking the accounts against the return means allowing for both gaps.
Can Xero show tax held back from subcontractors and tax held back from you in one report?
Not as standard. Tax you hold back from subcontractors is in the CIS Contractor report, and tax held back from you is in the CIS Suffered report. Users have asked Xero to combine them since at least January 2023. In February 2026 Xero moved the request to Gaining Support, its status for ideas it is watching, with no delivery date.
How does a limited company claim back CIS held back from it?
Through payroll, not the Corporation Tax return. Each month the company reports the CIS held back from it so far this tax year on the Employer Payment Summary, a payroll filing to HMRC, and HMRC takes it off what the company owes in payroll taxes. Anything left at the end of the tax year can be claimed as a refund. Sole traders and partners claim it on their Self Assessment tax return instead.
Jarvin
Written by
Jarvin Ong

A finance professional turned product builder, Jarvin has built hundreds of reports by hand and knows what financial and operational reporting demands: customisability, auditability, scalability, and security. Having automated that work reliably, he's now helping advisory firms and finance teams do the same.

Ready to Hunt at Cheetah Speed?

Cheetah was built to handle the most complex edge cases. If every other generic software solution has failed you, you've come to the right place.

Connect with us
WhatsApp

© Safari Technologies Pte. Ltd.
Registered in Singapore
UEN 202443524G