Why is Xero CIS not working?
The most commonly reported Xero CIS problems are: (1)materials-only invoices not appearing on the CIS300, because Xero's CIS materials code is not always pulled into the monthly return; (2)no historical adjustments — “Update CIS” only touches current and future months; (3) CIS-suffered amounts needing manual bank-reconciliation workarounds; and (4) the module not reading subcontractor PDF invoices at all — every figure is keyed in by hand. These are well-documented on bookkeeping forums, not user errors.
The honest verdict on Xero CIS
Xero's CIS module is good at the back half of the job. It can:
- Auto-calculate the deduction on a bill once the figures are entered
- Submit the CIS300 directly to HMRC
- Integrate with Xero payroll for CIS
What it consistently can't do:
- Pull CIS300 figures from a materials-only invoice — the CIS materials code isn't reliably carried into the monthly return.
- Make historical adjustments — “Update CIS” is current and future months only.
- Handle CIS-suffered amounts without manual bank-reconciliation workarounds.
- Read a subcontractor PDF invoice and extract the fields — all data entry is manual, regardless of the module.
“The CIS module isn't really fit for purpose once you scratch the surface” is a sentiment bookkeepers repeat on AccountingWEB. The calculation isn't the painful part — reading and typing the invoice that feeds it is.
What the missing piece costs
Every materials-only invoice the module misses is a manual CIS300 entry. A practice with 15 construction clients averaging four subcontractors each is up to 60 invoices processed by hand every month. The module handles the arithmetic; it doesn't handle reading the invoice that triggers it.
From April 2026, HMRC's nil-return rule means even months with no payments need a formal submission — miss it and it's an immediate £100 fine. (Full calendar: CIS300 due dates.)
Capture, file — but who reads the CIS?
Your stack already owns the ends of the job. Generic capture tools (Dext, AutoEntry, Hubdoc) read the invoice as generic text — supplier, total, line items. Xero CIS, ApprovalMax and the CIS suites file the return once the bill is typed. Neither one reads the invoice as a CIS document — so the CIS-specific reading in the middle (find the UTR, find the verification number, split labour from materials, set the rate) still falls on you, by hand, every month.
CISflow does exactly that middle step. It's the mechanism we call CIS-Native Extraction: it reads a subcontractor invoice as a CIS document, not just text, and goes looking for each CIS field — so it hands you a finished, HMRC-ready bill to check, instead of a blank one to type.
Xero CIS module vs CISflow
| The CIS job | Xero CIS module | CISflow |
|---|---|---|
| Auto-calculates the deduction rate | Yes — once typed in | Yes |
| Reads emailed PDF invoices | No — manual entry | Yes — forward the email |
| Handles materials-only invoices correctly | No (known gap) | Yes |
| Extracts the labour / materials split | No — you split it | Yes — off the document |
| Pulls the UTR & verification number off the invoice | No — pre-stored on the contact | Yes |
| Files the CIS300 to HMRC | Yes (native) | No — feeds Xero, you file |
| Reads any invoice layout, including hand-typed | No | Yes |
Each tool owns half the job. The seam in the middle — turning a messy subbie invoice into a finished CIS bill — is done by hand everywhere except CISflow. CISflow feedsXero; it doesn't replace it.
Fill the gap — keep Xero
You don't rip anything out. Forward a subcontractor's invoice to CISflow, it extracts the UTR, verification number, labour/materials split and the deduction at the rate you confirm, then you review and export a clean CIS bill into Xero — and file the CIS300 in Xero exactly as you do now. The only thing that changes is the typing disappears.
It's live and in early access. See it on a real invoice (no signup), or forward your first invoice free — 14 days, no card.
Want to sanity-check a deduction by hand first? Use the free CIS calculator.
Keep reading
This guide is general information on UK CIS and on third-party software behaviour, not tax advice and not a statement on behalf of Xero. Software features change — always check current functionality. CISflow is a data-entry tool, not an accountancy or tax service — you remain responsible for figures submitted to HMRC.
Xero CIS module questions
- Is Xero's CIS module free?
- Xero's CIS functionality is included in the Xero plans that support it (you may need to add the CIS add-on on some plans). It calculates deductions and files the CIS300 to HMRC — but it does not read subcontractor invoices, so the data entry behind every return is still manual. CISflow adds that missing step from £39/mo.
- Can Xero read subcontractor PDF invoices automatically?
- No. Xero's CIS module calculates the deduction once the invoice data is entered, but it does not read or extract anything from a PDF invoice. The UTR, labour amount, materials amount and rate are all typed in by hand. CISflow reads the invoice and extracts those fields for you to review.
- What happens if my CIS300 is wrong because of a materials-only invoice?
- Xero's CIS materials code is not always pulled into the monthly return, so a materials-only invoice can be missed off the CIS300. If a return is wrong you should amend it for that month and correct the figures with HMRC. Reading the invoice correctly at source — splitting labour from materials — prevents the error in the first place.
- Do I need to leave Xero to use CISflow?
- No. CISflow does not replace Xero. It fills the gap the CIS module leaves: it reads the subcontractor invoice and extracts the CIS fields, which you review and export into Xero. You still post and file in Xero exactly as you do today — CISflow just removes the manual reading and re-keying step.