Build CIS300 Monthly Return (HMRC Construction Industry Scheme)
Skill: Convert subcontractor payments into a CIS300 monthly return
Region: United Kingdom Category: Tax — Construction Industry Scheme (CIS) Does: Takes a contractor's subcontractor payment and deduction records and assembles the CIS300 monthly return — the GovTalk XML contractors send to HMRC under the Construction Industry Scheme reporting payments made to subcontractors and the tax deducted. Spec: HMRC CIS — GovTalk XML, CIS300 monthly return (current schema)
Under CIS, contractors deduct tax from payments to subcontractors and report it monthly on the CIS300. From 6 April 2026, nil returns are mandatory (you must file even in a month with no payments). The return covers the tax month (6th–5th) and is due by the 19th. It carries per-subcontractor totals plus the contractor's monthly declarations. Element names below follow the CIS300, not a verbatim schema.
When this applies
- A contractor registered for CIS files a CIS300 for each tax month (6th of one month to the 5th of the next), due by the 19th of the month. Nil returns are mandatory from 6 April 2026.
- Deduction rates: 20% for registered (verified) subcontractors, 30% for unverified, 0% for those with gross-payment status.
Structure (CIS300 → GovTalk XML)
GovTalkMessage
Header (Class = CIS-CIS300MR / current class, Qualifier, Function)
GovTalkDetails (Keys: contractor's UTR / AO reference), ChannelRouting
Body
IRenvelope
IRheader (Sender, PeriodEnd = tax month end (5th), IRmark, SenderID/Authentication)
CISreturn
Contractor (UTR, AO reference, employer reference)
Subcontractor (repeating):
name / trading name; UTR; verification number (if unmatched/30%)
Total payments made (in the month)
Cost of materials (excluded from deduction)
Total amount deducted
Declarations:
employment status declaration
verification declaration
subcontractor declaration / "inactivity" or nil indicator
Calculation rules
- Deduction = (total payment − cost of materials) × rate. Materials (the direct cost to the subcontractor) are excluded from the amount the deduction is calculated on; the rate is 20% (registered/verified), 30% (unverified), or 0% (gross status).
- Verification: unmatched subcontractors must be verified with HMRC (yielding a verification number and the correct rate); 30% applies until verified.
- Per-subcontractor lines carry gross payment, materials, and deduction; the contractor's monthly declarations (employment status, verification, subcontractor) must be set.
- Nil/inactivity: from 6 April 2026 a return is required every month — use the nil indicator when no payments were made, or report inactivity if temporarily not using subcontractors.
- The return carries an IRmark and authenticated SenderID and must validate against the GovTalk/CIS schema.
Worked example (one subcontractor — outline)
Header: PeriodEnd = 2026-05-05, contractor UTR ...
Subcontractor: ABC Bricklaying Ltd, UTR=1234567890, verified (20%)
Total payments = 10,000.00
Cost of materials = 2,000.00
Amount deducted = (10,000 − 2,000) × 20% = 1,600.00
Declarations: employment status ✔, verification ✔, subcontractor ✔
Wrapped in the GovTalkMessage with IRmark and submitted to HMRC by the 19th.
Validation checklist
- Current CIS300 GovTalk schema/class used; PeriodEnd = the 5th of the tax month
- Contractor UTR / AO / employer references and authenticated SenderID + IRmark present
- Each subcontractor: identity, UTR, verification number/rate (20% verified / 30% unverified / 0% gross)
- Deduction = (payment − materials) × rate; materials correctly excluded
- Monthly declarations (employment status, verification, subcontractor) set
- Nil return filed when no payments (mandatory from 6 April 2026); inactivity flagged if applicable
- Schema-validated; filed by the 19th
Last updated: 2026-05-31 — CIS rates, the mandatory-nil-return rule (from 6 April 2026), and the schema may change; confirm the current deduction rates, return schema/class, nil-return rules, and the deadline against current HMRC CIS guidance before use.