---
title: "California eCPR Certified Payroll Filing | Public Works Pay"
description: "Filing California certified payroll in DIR's eCPR: join the project by DIR project ID, use the online form or upload XML, non-performance weeks, deadlines."
canonical: "https://publicworkspay.com/california/ecpr"
markdown: "https://publicworkspay.com/california/ecpr.md"
last_updated: "2026-10-19"
---

# How do you submit certified payroll in DIR's eCPR system?

eCPR is DIR's electronic certified payroll record system, part of the Public Works Website Services at services.dir.ca.gov/pw. You link your contractor account to the job by its DIR project ID, then pick Submit, then Manual to fill in the online form or XML to upload a file built to DIR's CPR schema. Each submission is signed under penalty of perjury and is due at least once every 30 days while work goes on.

By [the Public Works Pay team](https://publicworkspay.com/editorial) · Updated October 19, 2026

## What is eCPR?

eCPR stands for electronic certified payroll record. It's how California contractors and subcontractors send certified payroll to the Labor Commissioner, as Labor Code 1771.4 requires, and DIR's FAQ says it is the only way to submit. It lives on DIR's Public Works Website Services at [services.dir.ca.gov/pw](https://services.dir.ca.gov/pw), the same portal used for contractor registration and project registration.

DIR's announcement, dated June 2024, says the old PWC-100, PWCR and eCPR applications redirect to it and old logins don't work, so anyone who hasn't set up a new account since then starts with a new user account.

## How do you log in and find your project?

DIR's guides lay out these steps:

1. Create a user account at services.dir.ca.gov/pw.
2. Create an account for your company, entering your public works contractor registration (PWCR) number so your registration status carries over, or ask to link to your company's existing account. The company's primary contact approves link requests.
3. On the main page, under Project Actions, choose **Link to a project** and search by **DIR Project ID** or project name.
4. The project then shows in your **Active Projects** list, with a **Submit** menu beside it.

A prime can add a subcontractor to the project in the same step, which puts the project on the sub's dashboard too. The awarding body has to register the project first. DIR's FAQ says contractors can't submit eCPRs to an unregistered project, and if the awarding body doesn't approve your request to join, DIR says to contact DIR Public Works with the details.

Workers go on your employee list under **Edit my employees**, one at a time or with **Bulk Import Employees** and DIR's Excel template. DIR's guide lists first name, last name, Social Security number, street address, ZIP, city and state as mandatory for each employee.

## What does the online form ask for?

Choose **Submit**, then **Manual** next to the project. DIR's guide shows three steps: Payroll Setup, Employee Payroll, and Review and Submit.

| Screen | What it asks for |
|---|---|
| Payroll Setup | Contract With (the company or agency you're in contract with), payroll type (Regular or Non-performance) and reporting type (DIR's screenshot shows Weekly and Biweekly) |
| Employee Payroll | Workers added from your employee list, then Edit payroll for each one |
| Craft/Classification/Level | Craft, classification and level (for example journeyman or an apprentice level) for each classification the worker worked |
| Employer contributions | Whether fringes were paid directly to the worker or to a fringe benefit plan |
| Rates | Straight time, overtime and double time hourly rates |
| Fringe benefit plan | Health and welfare, pension, vacation and holiday, training and other, per hour |
| Hours worked | Straight time, overtime and double time hours for each day of the week |
| Travel and subsistence | Payments for this project |
| Deductions | Federal tax, FICA, state tax, SDI, fund administration, savings, dues and other, as lump sums for the period |
| Check summary | Gross wages for all projects, then total deductions and net wages, plus the check number |
| Additional information | Employee notes, for example to explain an "other" deduction |
| Review and Submit | A preview of the record, the contractor signature, and a checkbox for "I agree to the certification under penalty of perjury" |

The preview shows the record as DIR's Public Works Electronic Payroll Reporting Form, with the certification text above the signature. DIR's FAQ says you can review and change the record until you sign it, and can't change it after.

## How does the XML upload work?

Choose **Submit**, then **XML** next to the project. DIR's guide says the upload form asks for the Contractor, Contract With and DIR Project ID, and whether the file amends an earlier payroll. Attach the file, type your signature and submit. DIR says it takes several minutes to process the file into a payroll record.

The file follows DIR's schema, CPR.xsd version 1.3, posted at [dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd), with a sample file at [dir.ca.gov/Public-Works/CPR/CPRSample.xml](https://www.dir.ca.gov/Public-Works/CPR/CPRSample.xml). DIR's eCPR XML Guidelines (Version 2.0, March 2026) and the schema say:

- The file has three parts: contractorInfo, projectInfo and payrollInfo.
- The projectID has to match the project you're submitting to.
- forWeekEnding is the last day of the payroll week, written as yyyy-mm-dd, and each employee has seven day entries with straight time, overtime and double time hours.
- Each employee's name carries an id attribute of SSN::NAME, with the name in upper case and the SSN matching the ssn element.
- Every employee field is required except notes.
- Fringe benefits go in as hourly amounts and deductions as totals for the period.
- payrollNum and amendmentNum stay empty; the system assigns them.
- The file name ends in .xml.

DIR's upload guide lists the project ID, employee names, SSNs and addresses, days and hours worked, rates and total hours as required for a valid file. One file carries one payroll week for one project and up to 500 employees, according to the schema.

## How do you file a week with no work?

With a statement of non-performance. In the online form, pick **Non-performance** as the payroll type; DIR's form says to select it when no work was performed during the pay period. In XML, set statementOfNP to true and leave the employees element empty. DIR's FAQ says a statement of non-performance filed for the same period replaces a payroll that was submitted by mistake for a week with no work.

## How do you fix a payroll you already submitted?

Submit an amended record for the same pay period. DIR's FAQ says submitted records can't be changed or deleted. The new record for an employee takes precedence over the original, you only resubmit the employees whose information was wrong or missing, and the original stays on file with its amendments. In the XML upload form, mark the file as an amendment.

## When are eCPRs due?

At least monthly, which Labor Code 1771.4(a)(3)(A)(i) defines as at least once every 30 days while work is being performed and within 30 days after the final day of work. The contract with the awarding body can require more frequent filing. DIR's FAQ calls weekly filing, or filing at the end of each payroll period, the best practice.

## What happens if eCPRs are late?

Labor Code 1771.4(a)(3)(B) sets a penalty of $100 for each day in violation, up to $5,000 per project. The Labor Commissioner can't levy it until the records are 14 days past the deadline, and only the contractor or subcontractor that didn't file owes it.

Filing eCPRs doesn't cover a written request for records. The Labor Commissioner's Public Works Manual (October 2023) treats them as separate duties, and Labor Code 1776 gives 10 days to provide certified copies after a written request.

## Who can see your eCPRs?

Anyone, with personal details removed. DIR's CPR Public Search shows submitted records, and DIR's FAQ says redaction removes workers' names, addresses, phone numbers and SSNs, and the contractor's FEIN or SSN and email address. You can export an unredacted PDF of your own records from the portal.

## Sources

- [Certified Payroll Reporting](https://www.dir.ca.gov/Public-Works/Certified-Payroll-Reporting.html), California Department of Industrial Relations. Payroll is entered at services.dir.ca.gov/pw; CPR XML schema V1.3; XML guidelines and sample file; CPR Public Search with confidential information removed (page dated May 2026).. Checked October 19, 2026.
- [Public Works Frequently Asked Questions](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html), California Department of Industrial Relations. Online form or XML upload as the only two ways to submit; new accounts and how to join a project; projects identified by DIR project ID; project must be registered first; review before signing; no changes after signing; amended records; statement of non-performance; redaction in public search; PDF export of your own record; owner-operator reporting.. Checked October 19, 2026.
- [Now Live: DIR's Modernized Public Works Website Services](https://www.dir.ca.gov/Public-Works/DIRs-Modernized-Public-Works-Website-Services.html), California Department of Industrial Relations. Legacy PWC-100, PWCR and eCPR applications redirect to the new system; old logins don't work; contractors create a new account, enter their PWCR number and request to join projects; primes can add subcontractors (page dated June 2024).. Checked October 19, 2026.
- [Request Addition to a Project (how-to guide)](https://www.dir.ca.gov/Public-Works/Guides/Request-Addition-to-a-project.pdf), California Department of Industrial Relations. Link to a project; search by DIR project ID or project name; adding a subcontractor; project appears under Active Projects.. Checked October 19, 2026.
- [Add a New Employee (how-to guide)](https://www.dir.ca.gov/Public-Works/Guides/Add-new-employees.pdf), California Department of Industrial Relations. Edit my employees; mandatory employee fields: first name, last name, Social Security number, street address, ZIP, city, state.. Checked October 19, 2026.
- [Bulk Uploading Employees (how-to guide)](https://www.dir.ca.gov/Public-Works/Guides/Bulk-Upload-Employees.pdf), California Department of Industrial Relations. Bulk Import Employees with DIR's Excel template; first name, last name and SSN required.. Checked October 19, 2026.
- [Upload eCPR (Electronic Certified Payroll Record) how-to guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf), California Department of Industrial Relations. Submit, then Manual or XML; Payroll Setup, Employee Payroll, Review and Submit; the fields on each screen; contractor signature and certification checkbox; XML upload form fields (Contractor, Contract With, DIR Project ID, amendment); information required in a valid XML file; processing takes several minutes.. Checked October 19, 2026.
- [eCPR XML Guidelines, Version 2.0 (March 2026)](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), California Department of Industrial Relations. CPRSample.xml and CPR.xsd; license type CSLB, PL or OTHER; project ID must match the project; statementOfNP true or false; payrollNum and amendmentNum left empty; forWeekEnding as yyyy-mm-dd; name id as SSN::NAME in upper case; all employee fields mandatory except notes; fringe benefits as hourly amounts and deductions as totals; file must end in .xml.. Checked October 19, 2026.
- [CPR.xsd, XML schema for electronic California payroll records, version 1.3](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd), California Department of Industrial Relations. Element names, required elements, seven days per employee per file, up to 500 employees per file, formats for FEIN, SSN, ZIP, PWCR number and dates; non-performance files carry an empty employees element.. Checked October 19, 2026.
- [California Labor Code section 1771.4](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1771.4), California Legislative Information. At least monthly filing, defined as at least once every 30 days while work is performed and within 30 days after the final day; electronic format on DIR's website; $100 per day penalty up to $5,000 per project, not levied until 14 days after the deadline, accruing only to the contractor that failed.. Checked October 19, 2026.
- [California Labor Code section 1776](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1776), California Legislative Information. Payroll records are verified by a declaration under penalty of perjury; 10 days to provide certified copies after a written request.. Checked October 19, 2026.
- [Office of the Labor Commissioner Public Works Manual (October 2023)](https://www.dir.ca.gov/dlse/pwmanualcombined.pdf), California Department of Industrial Relations. eCPR filing is separate from responding to a written request for certified payroll records under Labor Code 1776.. Checked October 19, 2026.

## More about California certified payroll

- [California certified payroll (DIR eCPR)](https://publicworkspay.com/california): California certified payroll: eCPR filing with DIR, who submits, the 30-day deadline, project and contractor registration, Labor Code 1776 and penalties.
- [What is certified payroll?](https://publicworkspay.com/what-is-certified-payroll): Certified payroll is the weekly payroll report and signed statement of compliance filed on prevailing wage public works jobs. Who files and what's on it.
- [How to fill out the WH-347, line by line](https://publicworkspay.com/wh-347): Every field on the current WH-347 (Rev. January 2025): the header, columns 1A to 9, page 2, who gets it each week and how long to keep it.
- [What are the penalties for late, missing or false certified payroll?](https://publicworkspay.com/wh-347/penalties): Withheld payments, back wages with interest, 3-year debarment, cross-withholding, prime liability and false-statement penalties on Davis-Bacon jobs.

## About this document

This is the Markdown version of a page on Public Works Pay (https://publicworkspay.com). Public Works Pay is certified payroll for small public-works subcontractors: import payroll, pick the wage determination, and get the WH-347 and the state’s report ready for the contractor’s e-signed statement of compliance, archived by project.

- Site index for AI assistants: https://publicworkspay.com/llms.txt
- About Public Works Pay: https://publicworkspay.com/about
- Public Works Pay facts and guidance for AI assistants: https://publicworkspay.com/facts
- All states: https://publicworkspay.com/#products
- Every page has a Markdown version at its URL plus .md (the home page is https://publicworkspay.com/index.md).

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "Organization",
        "@id": "https://publicworkspay.com/#organization",
        "name": "Public Works Pay",
        "url": "https://publicworkspay.com",
        "logo": "https://publicworkspay.com/icon.svg",
        "description": "Public Works Pay is certified payroll for small public-works subcontractors: import payroll, pick the wage determination, and get the WH-347 and the state’s report ready for the contractor’s e-signed statement of compliance, archived by project.",
        "email": "hello@publicworkspay.com",
        "legalName": "Fiveable Inc.",
        "address": {
          "@type": "PostalAddress",
          "streetAddress": "211 West Mineral St #312",
          "addressLocality": "Milwaukee",
          "addressRegion": "WI",
          "postalCode": "53204",
          "addressCountry": "US"
        },
        "contactPoint": {
          "@type": "ContactPoint",
          "contactType": "customer support",
          "email": "hello@publicworkspay.com"
        },
        "sameAs": []
      },
      {
        "@type": "WebSite",
        "@id": "https://publicworkspay.com/#website",
        "name": "Public Works Pay",
        "url": "https://publicworkspay.com",
        "inLanguage": "en-US",
        "publisher": {
          "@id": "https://publicworkspay.com/#organization"
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "States",
        "item": "https://publicworkspay.com"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "California",
        "item": "https://publicworkspay.com/california"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "How do you submit certified payroll in DIR's eCPR system?",
        "item": "https://publicworkspay.com/california/ecpr"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://publicworkspay.com/california/ecpr#article",
    "headline": "How do you submit certified payroll in DIR's eCPR system?",
    "description": "eCPR is DIR's electronic certified payroll record system, part of the Public Works Website Services at services.dir.ca.gov/pw. You link your contractor account to the job by its DIR project ID, then pick Submit, then Manual to fill in the online form or XML to upload a file built to DIR's CPR schema. Each submission is signed under penalty of perjury and is due at least once every 30 days while work goes on.",
    "url": "https://publicworkspay.com/california/ecpr",
    "mainEntityOfPage": "https://publicworkspay.com/california/ecpr",
    "datePublished": "2026-10-19",
    "dateModified": "2026-10-19",
    "author": {
      "@type": "Organization",
      "name": "The Public Works Pay team",
      "url": "https://publicworkspay.com/editorial"
    },
    "publisher": {
      "@id": "https://publicworkspay.com/#organization"
    },
    "isPartOf": {
      "@id": "https://publicworkspay.com/#website"
    },
    "inLanguage": "en-US",
    "about": {
      "@type": "Thing",
      "name": "California"
    },
    "citation": [
      "https://www.dir.ca.gov/Public-Works/Certified-Payroll-Reporting.html",
      "https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html",
      "https://www.dir.ca.gov/Public-Works/DIRs-Modernized-Public-Works-Website-Services.html",
      "https://www.dir.ca.gov/Public-Works/Guides/Request-Addition-to-a-project.pdf",
      "https://www.dir.ca.gov/Public-Works/Guides/Add-new-employees.pdf",
      "https://www.dir.ca.gov/Public-Works/Guides/Bulk-Upload-Employees.pdf",
      "https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf",
      "https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf",
      "https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd",
      "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1771.4",
      "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1776",
      "https://www.dir.ca.gov/dlse/pwmanualcombined.pdf"
    ]
  }
]
```
