What is Construction Industry Scheme (CIS)?
The Construction Industry Scheme (CIS) is a UK tax deduction scheme designed for contractors and subcontractors working in the construction industry. Under CIS:
Contractors deduct money from payments to subcontractors and send it to HMRC as advance payments toward the subcontractor’s tax and National Insurance.
Subcontractors must register with CIS to receive payments (either gross or net of deductions).
Deduction rates are typically 20% (for registered subcontractors), 30% (for unregistered subcontractors), or 0% (for subcontractors with gross payment status).
What is HMRC?
HM Revenue & Customs (HMRC) is the UK government department responsible for:
- Collecting taxes (Income Tax, VAT, Corporation Tax, etc.)
- Enforcing tax laws
Managing schemes like CIS, PAYE, and Making Tax Digital (MTD)
Connection Between CIS and HMRC
From master records to historical transactions, we migrate every
critical data layer accurately.
HMRC Administers CIS
They set the rules, manage registrations, and ensure compliance.
Contractors Report to HMRC
They must submit monthly CIS returns (even if no payments were made).
Subcontractors Must Register with HMRC
They need a CIS UTR (Unique Taxpayer Reference) to work in construction.
HMRC’s CIS APIs
Allow businesses to verify subcontractors, submit returns, and manage deductions digitally.
UK Construction Industry Scheme (CIS) HMRC API Integration
The UK Construction Industry Scheme (CIS) is a tax deduction scheme for construction contractors and subcontractors. HMRC provides APIs to help businesses integrate CIS functionality directly into their systems.
Key CIS API Endpoints
HMRC offers several API endpoints for CIS integration:
CIS Deductions API
- Submit CIS deductions
- Retrieve CIS deductions
- Amend CIS deductions
- Delete CIS deductions
CIS Verification API
- Verify subcontractor status
- Check payment status
CIS Returns API
- Submit monthly CIS returns
- Retrieve CIS return information
- Integration Process
Supplier Master (Subcontractor Verification)
- Here, “Is CIS Subcontractor” checkbox
- UTR field (with HMRC verification status)
- CIS Deduction Rate (auto filled via HMRC API)
Purchase Invoice (CIS Deduction Calculation)
- CIS Tax Deduction row (auto-calculated)
- I want the tax amount in negative value so that it will be deducted from the Total Amount.
- Net Payable Amount (after deduction)
- “CIS Applied” flag in document header
Payment Entry (Net Payment to Subcontractor)
- Allocated Amount (shows only net payment, excludes CIS tax)
- I want a tab where Allocated amount is calculated (CIS Amount is withheld for HMRC)
- Remarks field (“CIS Deduction £X withheld for HMRC”)
- I want a Remarks field in the end where I can add Remarks to easily track them
CIS Monthly Return (HMRC Submission)
Reports > UK Tax Reports > CIS Deduction Report
| Section | What to Look For |
|---|---|
| Path | Reports > UK Tax Reports > CIS Deduction Report |
| Button | Submit to HMRC (usually top-right or above the table) |
| Report Table | List of subcontractors, their gross payment, deduction amount, UTR, etc. |
| Status Column | “Success”, “Failure”, “Pending” for each submission |
Journal Entry (CIS Liability Posting)
| Account | Debit | Credit | Ref. Type | Ref. Name |
|---|---|---|---|---|
| Creditors – SubCo | £200 | Purchase Invoice | PINV-0005 | |
| CIS Tax Payable | £200 |
Key Integration Points in ERPNext for CIS
| ERPNext Document | Integration Purpose | HMRC API Used |
|---|---|---|
| Supplier Master | Verify subcontractor status | GET /cis/verification/individuals/{UTR} |
| Purchase Invoice | Calculate & withhold CIS tax | N/A (internal calculation) |
| Payment Entry | Separate net payment from CIS tax | N/A |
| CIS Monthly Return | Submit deductions to HMRC | POST /cis/returns |
| Journal Entry | Adjust CIS liability accounts | N/A |
What Your Development Team Needs to Implement
HMRC API Connection
- OAuth 2.0 authentication flow
- Token refresh mechanism (tokens expire every 4 hours)
Custom Fields in ERPNext
- Supplier: is_cis_subcontractor, utr, cis_deduction_rate
- Purchase Invoice: cis_tax, is_cis_subcontractor
Server-Side Scripts
- Subcontractor verification (Supplier On Save)
- CIS deduction calculation (Purchase Invoice Before Submit)
- Payment allocation adjustment (Payment Entry Before Save)
Scheduled Tasks
- Monthly CIS return submission (Scheduled for 19th monthly)
Error Handling
- Failed API calls retry logic
- Alerts for verification failures