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

SectionWhat to Look For
PathReports > UK Tax Reports > CIS Deduction Report
ButtonSubmit to HMRC (usually top-right or above the table)
Report TableList 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