How to Submit Certified Payroll to the DIR (eCPR) in California
Updated November 1, 2026. General information, not legal advice.
California requires contractors and subcontractors on most public works projects to send their certified payroll records (CPRs) electronically to the Labor Commissioner through the Department of Industrial Relations (DIR). DIR calls this electronic certified payroll reporting, or eCPR. This guide covers who has to file, how often, how the portal works, what each record must contain, and the mistakes that cause rejected uploads.
Who must submit eCPR
Under Labor Code 1771.4, contractors and subcontractors furnish the payroll records described in Labor Code 1776 directly to the Labor Commissioner, in electronic format, through DIR’s website. The rule applies to all contracts for public work entered into on or after January 1, 2016. DIR’s own summary is simple: “Contractors and subcontractors on most public works projects are required to submit certified payroll records.”
Each employer files for its own workers. A prime does not file a sub’s payroll, and the 1771.4 penalty falls only on the party that failed to submit.
A few categories are exempt from DIR’s online reporting:
- Small projects at or under the $25,000 and $15,000 thresholds (covered below).
- Projects monitored by the legacy labor compliance programs of Caltrans, the City of Los Angeles, LAUSD and the County of Sacramento, and projects under qualifying project labor agreements. DIR’s exemptions page lists these “until further notice” and is dated July 2016, so confirm with the awarding body before you skip a filing.
How often: at least monthly
Labor Code 1771.4(a)(3)(A) requires submission “at least monthly or more frequently if specified in the contract with the awarding body.” The statute defines monthly as “at least once every 30 days while work is being performed on the project and within 30 days after the final day of work performed on the project.”
Each payroll record still covers one week. In the XML format, the week is the “for week ending” date plus the six days before it. So a month of work means four or five weekly records, sent at least once every 30 days. Check your contract: if it asks for weekly submissions, that controls.
Where to file: the DIR portal
eCPR is filed in DIR’s Public Works Website Services at services.dir.ca.gov/pw. DIR moved to this system in 2024, and old logins do not carry over. DIR’s registration page says that if you have not created a new account since May 24, 2024, you must create one.
Each submission ties to a DIR project ID and to your public works contractor registration (PWCR) number.
Two ways to submit
Manual web entry
In the portal, find your project and choose Submit, then Manual. You type each worker, classification, daily hours, rates, fringes, deductions and pay.
XML upload
Payroll software can export an XML file that you upload instead. DIR published XML schema version 2.0 in October 2026, with guidelines, an XSD, a blank template, a sample file and an FAQ. DIR’s FAQ says “V1 submissions will still be supported until January 13, 2027.” If your software still exports V1, our free eCPR XML generator converts a V1 file to V2 and checks it against DIR’s rules in your browser, without sending your workers’ SSNs anywhere.
Key V2 rules:
- Your PWCR number is required, must be exactly 10 digits, and must match DIR’s records. A mismatch causes a hard submission failure, and “NA” is no longer accepted.
- The project ID is required, numeric, and must match the DIR project ID.
- A single file can hold up to 500 employees.
- V2 drops several fields V1 carried, including your license number, FEIN, address, insurance number, email and project name or location blocks. Payroll and amendment numbers are assigned by the system.
What each record must contain
Labor Code 1776(a) requires each worker’s name, address, Social Security number, work classification, straight time and overtime hours worked each day and week, and the actual per diem wages paid. Each record must be made, or verified, under penalty of perjury.
In eCPR terms, that breaks down like this:
| Section | What you enter |
|---|---|
| Worker | First, middle and last name; street, city, state, ZIP; full SSN or ITIN |
| Classification | Craft, journeyman or apprentice, apprentice level (1 to 10) |
| Hours | Date and straight time, overtime and double time for each of 7 days, plus weekly totals |
| Rates | Hourly straight time, overtime and double time rates |
| Fringes | Health and welfare, vacation and holiday, pension, training, other; paid to the worker, to a plan, or both |
| Deductions | Federal tax, FICA, state tax, SDI, fund administration, savings, dues, other, total |
| Pay | Gross for this project, gross for all work, net wages paid, check number (or “CASH”) |
If the week had no work on the project, the XML format includes a statement of non-performance field. Check the DIR guidelines or ask the awarding body how it wants non-work weeks reported.
Full SSN or ITIN, not the last four
DIR requires the full 9-digit SSN or an ITIN for every worker. In the XML, at least one must be filled in, and an SSN can only appear once per file. For manual entry, DIR lists first name, last name, Social Security number, street address, ZIP, city and state as mandatory.
This is the reverse of the federal rule. The federal WH-347 must not include full Social Security numbers, only an identifier such as the last four digits. If you also file WH-347s, do not reuse those identifiers for eCPR. Our guide to WH-347 vs. California certified payroll compares the two.
Redaction for public copies
Certified payroll can be requested by the public, but not with private details. Under Labor Code 1776(e), copies released to the public must have each worker’s name, address and Social Security number redacted. Taft-Hartley trust funds receive the last four digits of the SSN. DIR’s paper form, Form A-1-131, carries a “Notice to Public Entity” telling agencies to fold back the personal details before copying for the general public.
The $25,000 and $15,000 exemptions
Registration and eCPR do not apply to work on a public works project of $25,000 or less for construction, alteration, demolition, installation or repair, or $15,000 or less for maintenance. An unregistered contractor on such a project “is not required to furnish the records specified in Section 1776 directly to the Labor Commissioner but shall retain the records” for at least three years after the work is completed (1771.4(a)(4)).
Two cautions:
- The thresholds refer to the project, not your subcontract. A $10,000 subcontract on a $2 million project is not exempt.
- The exemption covers registration and eCPR only. Prevailing wage still applies to public works over $1,000 under Labor Code 1771.
The 10-day written-request rule
eCPR does not replace records requests. Under Labor Code 1776(d), a contractor or subcontractor must file a certified copy of its payroll records with the entity that asked for them “within 10 days after receipt of a written request.” Missing that deadline carries its own penalty under 1776(h): $100 per calendar day per worker today, rising to $140 on January 1, 2027. See California certified payroll penalties for the full table.
Common eCPR mistakes
- Using last-four SSNs. DIR needs the full number or an ITIN.
- A wrong or missing PWCR number. Under V2, it is a hard failure.
- Wrong project ID. Use the DIR project ID, not the awarding body’s contract number.
- Totals that do not add up. Weekly hours must equal the sum of the daily hours, and straight time, overtime and double time combined cannot exceed 24 in a day.
- Total hourly rate errors. In V2, each total hourly rate must equal the base rate plus the sum of the fringes.
- Fringe payment method left blank. At least one of “paid to employee” or “paid to benefit plan” must be true.
- Letting 30 days pass. Late submissions can draw $100 per day, up to $5,000 per project.
- Staying on V1 XML. V1 support ends January 13, 2027. You can convert a V1 file to V2 for free.
- Ignoring a written request because the payroll is already in the portal. The 10-day clock still runs.
If the same job is federally funded, you may also owe a weekly WH-347. Our free WH-347 generator fills the current federal form in your browser. If you would rather hand off both, our pilot program prepares the WH-347 and the DIR eCPR file from the payroll you already run.
Sources
- Labor Code 1771.4: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB§ionNum=1771.4
- Labor Code 1776: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB§ionNum=1776
- Labor Code 1771: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB§ionNum=1771
- Labor Code 1725.5: https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB§ionNum=1725.5
- DIR, Certified Payroll Reporting: https://www.dir.ca.gov/Public-Works/Certified-Payroll-Reporting.html
- DIR, eCPR exemptions: https://www.dir.ca.gov/Public-Works/eCPR_exemptions.html
- DIR, eCPR XML Guidelines V2: https://www.dir.ca.gov/Public-Works/CPR/eCPR-XML-Guidelines-V2.pdf
- DIR, eCPR XML Submission V2 FAQ: https://www.dir.ca.gov/Public-Works/CPR/eCPR-XML-Submission-V2-FAQ.pdf
- DIR, Add new employees guide: https://www.dir.ca.gov/Public-Works/Guides/Add-new-employees.pdf
- DIR, Contractor registration: https://www.dir.ca.gov/public-works/contractor-registration.html
- DIR Form A-1-131: https://www.dir.ca.gov/dlse/Forms/PW/DLSEFormA-1-131.pdf
Frequently asked questions
How often do I have to submit certified payroll to the DIR?
At least monthly, or more often if your contract says so. Labor Code 1771.4 defines monthly as at least once every 30 days while work is being performed on the project, and within 30 days after the final day of work on the project.
Does California eCPR need the full Social Security number?
Yes. DIR requires the full 9-digit SSN or an ITIN for each worker, in both manual entry and XML uploads. This is the opposite of the federal WH-347, which must not include full Social Security numbers.
Can I still upload eCPR XML files in the old V1 format?
For now. DIR published XML schema V2 in October 2026 and says V1 submissions will still be supported until January 13, 2027. Move your software or template to V2 before then.
Do I have to submit eCPR on a $20,000 construction job?
If the whole public works project is $25,000 or less (construction, alteration, demolition, installation or repair) or $15,000 or less (maintenance), an unregistered contractor does not furnish records to the Labor Commissioner but must keep them for at least three years. Prevailing wage still applies above $1,000.
Does uploading eCPR count as answering a records request?
No. A written request for certified payroll under Labor Code 1776 is a separate obligation with its own 10-day deadline. You file a certified copy with whoever made the request, even if the same weeks are already in the DIR system.