---
title: How to File Certified Payroll in California: DIR XML Steps
url: https://wellstanding.com/guides/how-to-submit-certified-payroll-to-dir/
description: The DIR process step by step: registration and the PWC-100 first, then the Project ID, the XML build, the upload, the sign step, and how often it is due.
updated: 2026-10-16
type: guide
publisher: WellStanding Certified Payroll
---
# How to submit certified payroll to DIR, step by step

The upload is one step in a longer sequence. The steps before it (registration, project setup, the XML file) and after it (the sign off and the records) matter as much. This is the whole sequence on the current portal, checked against [DIR's Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf).

Last reviewed October 16, 2026 against the sources it cites

The short answer

Build the XML from DIR's [CPRSample.xml](https://www.dir.ca.gov/Public-Works/CPR/CPRSample.xml) and check it against [CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd). [DIR's version 2.0 guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf) name the DIR Project ID as the only mandatory field under projectInfo, but CPR.xsd also requires a contractAgency value. Then sign in to DIR's [Public Works Services Portal](https://services.dir.ca.gov/pw), choose Submit and XML next to the project, fill in the form, enter the Signature, and click Submit ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)).

- DIR's version 2.0 guidelines say the only mandatory field under projectInfo is the DIR Project ID, which must match the project you are filing for, and that all fields under each employee are mandatory except notes ([DIR eCPR XML Guidelines, version 2.0, March 2026](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf)). The schema DIR publishes, [CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd), also requires a contractAgency value that is not empty. DIR's [Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) lists what a valid XML file needs: Project ID, employee names, SSNs and addresses, days and hours worked, rates, and total hours worked.
- Each employee name element carries an id attribute of SSN::NAME with the name in upper case, and the file name only has to end in .xml ([DIR eCPR XML Guidelines, version 2.0](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf)).
- On DIR's XML upload form you complete Contractor, Contract With, and DIR Project ID, upload the file, enter the Signature, and click Submit, and DIR says processing takes several minutes ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)).
- Projects must be registered with DIR for contractors and subcontractors to submit certified payroll records for them. If the awarding body has not registered the project, DIR says to ask it to complete the registration ([DIR FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html)).
- For a public works contract over $25,000 (construction, alteration, demolition, installation, or repair) or over $15,000 (maintenance), the awarding body must give DIR notice of the contract within 30 days of award and no later than the first day a contractor has workers on the job. Contracts awarded under four Public Contract Code sections have different timing ([Labor Code 1773.3(a)(1), (a)(2), and (j)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1773.3)).
- Monthly filing means a submission at least once every 30 days while work is being performed, and within 30 days after the final day of work on the project ([Labor Code 1771.4(a)(3)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1771.4)).

## The XML filing in seven steps

1. **Check the prerequisites.** You need a current contractor registration unless an exception applies, for example a project small enough to be exempt ([Labor Code 1725.5](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1725.5)). You need the project registered with DIR by the awarding body (the PWC-100, which DIR's [Support Center](https://www.dir.ca.gov/Public-Works/SupportCenter.html) now calls Project Registration). And you need a user account on DIR's [Public Works Services Portal](https://services.dir.ca.gov/pw) that is linked to your contractor's account. [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says the contractor must have an active registration with DIR to request to be added to a public works project.
2. **Get the project onto your dashboard and note the DIR Project ID.** In the portal, under Project Actions, click Link to a project and search by DIR Project ID or Project Name. Choosing the project adds it to your dashboard, which is what lets you submit eCPRs to it ([DIR guide](https://www.dir.ca.gov/Public-Works/Guides/Request-Addition-to-a-project.pdf)). Do this even if someone already gave you the number.
3. **Build the XML file** from DIR's [CPRSample.xml](https://www.dir.ca.gov/Public-Works/CPR/CPRSample.xml) and check it against [CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd).
4. **Choose Submit, then XML** next to the project in your Active Projects list ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)).
5. **Fill out the form.** Contractor, Contract With, DIR Project ID, the amendment question, then Upload XML File ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)).
6. **Sign and submit.** Read the certification, enter the Signature, click Submit, and allow several minutes for processing ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)).
7. **Fix and resend if it errors,** then save the confirmation and your XML file. DIR's [Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) sends you to its XML guide for the mandatory XML information.

Last checked October 16, 2026 against DIR's published guides: [eCPR XML Guidelines, version 2.0 (March 2026)](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf) and the [Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf), whose screenshots are dated March 2026. The portal can change its labels. If your screen differs, follow your screen.

## Before you can submit anything

1. **You have an account on DIR's portal.** DIR's [Account Registration Guide](https://www.dir.ca.gov/Public-Works/Guides/DIR-Account-Registration-Guide.pdf) walks through the Sign Up button at services.dir.ca.gov/pw and says you must verify your email address before you can log in. DIR's [January 2024 notice](https://www.dir.ca.gov/Public-Works/Upgrades-to-DIRs-Public-Works-Website-Services.html) announced a single portal to replace the PWC100, PWCR, and eCPR websites.
2. **Your user is linked to your contractor.** The same [Account Registration Guide](https://www.dir.ca.gov/Public-Works/Guides/DIR-Account-Registration-Guide.pdf) has you search for your business or create it in Step 3. If you link to a business that already has an account, its primary contact gets an email and has to approve the request, in the email or on the dashboard. A registration code from the primary contact's dashboard skips the approval. [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says the path to a project is to create a user account, join or create an account for your contractor, and request to join the project, and that the contractor must have an active registration with DIR to request to be added to a public works project.
3. **Most public works contractors need a current registration.** [Labor Code 1725.5](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1725.5) says a contractor must be registered to bid on, be listed in a bid proposal for, or perform a public work contract that is subject to the chapter. The section does not apply to work performed on a public works project of $25,000 or less for construction, alteration, demolition, installation, or repair work, or of $15,000 or less for maintenance work (1725.5(f)). [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says contractors who work exclusively on small public works projects are not required to register or to file electronic certified payroll reports for those projects, and that the dollar amount is for the entire contract between the awarding body and the prime contractor. They still have to keep certified payroll records and give them to the Labor Commissioner's Office on request. The FAQ lists other exceptions to the registration requirement too, for example contractors working solely on projects awarded before April 1, 2015, and projects awarded by and under the complete control of the federal government. If you do have to register, fees, the fiscal year cycle, and the lapse penalties are on the [registration guide](https://wellstanding.com/guides/public-works-contractor-registration-dir/).
4. **The awarding body has registered the project (the PWC-100).** [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says projects must be registered with DIR for contractors and subcontractors to submit certified payroll records for them. DIR's [Support Center](https://www.dir.ca.gov/Public-Works/SupportCenter.html) now calls the PWC-100 Project Registration. If the awarding body has not registered the project, the FAQ says to ask it to complete the registration as soon as possible, and, if it still has not, to contact DIR at publicworks@dir.ca.gov. For a public works contract over $25,000 (construction, alteration, demolition, installation, or repair) or over $15,000 (maintenance), the awarding body must give DIR notice of the contract within 30 days of award, and no later than the first day a contractor has workers on the job ([Labor Code 1773.3(a)(1) and (j)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1773.3)). Contracts awarded under four Public Contract Code sections have different timing under 1773.3(a)(2). If a project is missing from the system, that is the first call to make.
5. **Your company appears on the project.** You have to be on the project before you can submit. [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says to create a user account, join or create an account for your contractor, and submit a request to join the project. The steps to link a project are in the next section.

## Step 2 in detail: get the project onto your dashboard and note the DIR Project ID

The XML file and the upload form both need the DIR Project ID. DIR's schema describes it as the identification number of a public works project registered with a PWC-100, and it accepts digits only, one to eighteen of them ([CPR XML schema](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd)). If the awarding body or the prime already gave you the number, you still need the project on your Active Projects list before the Submit menu appears. If it is already there, go to the next section. If not, request addition as below, following [DIR's Request Addition to a Project guide](https://www.dir.ca.gov/Public-Works/Guides/Request-Addition-to-a-project.pdf):

1. Sign in at services.dir.ca.gov/pw. Under **Project Actions**, click **Link to a project**.
2. On the Request Addition to Project form, search by DIR Project ID or Project Name. DIR's screenshot lists the ID, the project name, and the awarding body on each row, so similar names are easy to tell apart.
3. Click the project in the list. DIR says this adds it to your dashboard so you can submit eCPRs to it.
4. The project now shows in your Active Projects list on the main landing page, with its DIR Project ID in its own column. Copy the number from there.

If the search finds nothing, the awarding body may not have filed the PWC-100 yet. See [PWC-100 explained](https://wellstanding.com/guides/pwc-100-explained/) for what to do.

## Build the XML file

DIR's guidelines start from the sample file, not from a blank page. Save [CPRSample.xml](https://www.dir.ca.gov/Public-Works/CPR/CPRSample.xml) and [CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd), open both in a text or XML editor, and edit the sample. DIR recommends Notepad++ or XML Notepad, which can check a file against a schema ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0). DIR's [Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) lists what a valid XML file needs: Project ID, employee names, SSNs and addresses, days and hours worked, rates, and total hours worked.

1. **contractorInfo.** Fill in every field. The license type is CSLB, PL, or OTHER ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0). The [schema's](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd) note for the contractorPWCR element says to enter NA if you do not have a PWCR number.
2. **projectInfo.** The Project ID is the only value you have to look up. [DIR's version 2.0 guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf) call it the only mandatory field under projectInfo, and it must match the project you are filing for. The [schema](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd) is stricter. CPR.xsd requires a contractAgency that is not empty, and it requires the awardingBodyID, projectNum, and contractID elements to be present, although they may be empty. The schema's own note lists those four as the required fields. The contractAgency element is the entity you contract with, the same as Contract With on the online form, and DIR's sample fills it in. The guidelines say to give any other project details you have, but the schema fixes awardingBody, contractAgencyID, projectName, and the location block to empty.
3. **payrollInfo.** Enter false for statementOfNP on a normal week. Leave payrollNum and amendmentNum empty, because the system assigns them. Enter the week ending date in forWeekEnding as yyyy-mm-dd ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0).
4. **One employee element per worker,** inside the employees element. Each name element needs an id attribute of the form SSN::NAME, with the name in upper case ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0). The [schema's](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd) example is id="123456789::JOHN SMITH" on a name element whose text is John Smith.
5. **Every field under each employee is mandatory except notes,** including the worker's address ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0). [CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd) requires exactly seven day elements, and its notes number them 1 to 7. DIR's guidelines say to increment the day id for each day included in the payroll. Follow the schema and list all seven days of the week, with zero hours on days not worked.
6. **Fringes are hourly amounts, deductions are lump sums.** DIR's example: $121.22 for FICA means $121.22 paid to FICA for all hours worked in the pay period ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0).
7. **A statement of non-performance** is for a week with no work. Enter true for statementOfNP and include no employee elements ([eCPR XML Guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), version 2.0). The submission section covers whether to file one.
8. **Name the file with the .xml extension.** That is the only naming rule in the [current guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), and their example is testpayroll123.xml. DIR's January 2016 guidelines showed a pattern built from the last four digits of the FEIN, the Project ID, and the week ending date ([January 2016 guidelines, version 1.10](https://www.dir.ca.gov/Public-Works/CPR/eCPRXMLGuideline.pdf)). You can still name files that way to keep them sorted. The current guidelines do not require it.
9. **Validate before you upload.** DIR's [2016 XML user guide](https://www.dir.ca.gov/Public-Works/documents/CPR-XML-Upload-User-Guide.pdf) shows the method in XML Notepad: open the file, choose View and Schemas, add CPR.xsd, and read the Error List tab. That guide predates the current portal, but the validation steps do not depend on it.

The schema file's own header says version 1.3, which matches the schema version on [DIR's certified payroll reporting page](https://www.dir.ca.gov/public-works/certified-payroll-reporting.html). That page still links the 2016 guidelines. DIR's [Support Center](https://www.dir.ca.gov/Public-Works/SupportCenter.html) links the eCPR XML guidelines PDF, which is labeled Version 2.0, March 2026. If you are not sure your payroll software can produce this file, see which [payroll systems say they export DIR eCPR XML](https://wellstanding.com/guides/payroll-systems-that-export-dir-ecpr-xml/). The [eCPR system guide](https://wellstanding.com/guides/dir-ecpr-system/) covers the other options.

## The submission

1. **Sign in to DIR's Public Works Services Portal.** The certified payroll reporting page links to it as Enter Payroll Online ([DIR certified payroll reporting](https://www.dir.ca.gov/public-works/certified-payroll-reporting.html)). Use the account you created in the new portal.
2. **Select the project.** Each project in your Active Projects list has a Submit menu next to it ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)). The week you are reporting goes in the file, in the forWeekEnding element, if you upload XML.
3. **Choose your method.** [DIR's Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) shows two methods, Manual and XML, and both start from the same Submit menu. This page calls the manual method the iForm. It means entering each worker's classification, hours by day, rates, fringe benefits, deductions, and gross wages. DIR's steps do not have you enter net wages, and the form's Check Summary shows them. The XML route means a file built to the schema and guidelines above. The form is described in the next section, and the rules that bounce files are on the [upload errors page](https://wellstanding.com/guides/ecpr-xml-upload-errors/).
4. **No work this week?** Check your contract and ask the awarding body whether it wants a statement of non-performance for that week. The statute sets the minimum: a submission at least once every 30 days while work is being performed on the project, and within 30 days after the final day of work ([Labor Code 1771.4(a)(3)(A)(i)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1771.4)). [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) does not set a general rule for filing in a week with no work. It mentions a Statement of Non-Performance twice. If you submitted payroll by mistake for a period with no work, you may submit one for the same period, and it takes precedence over the record submitted in error. In its answer for ready-mix concrete delivery companies, it says non-performance reports are not required by DIR. If you do file one, CPR.xsd says to set statementOfNP to true and include no employee elements. See [filing when no work was performed](https://wellstanding.com/guides/certified-payroll-no-work-performed/).
5. **Review and sign.** Every certified payroll record must contain or be verified by a written declaration, under penalty of perjury, that the information is true and correct and that the employer has complied with the requirements of Labor Code sections [1771](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1771), [1811](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1811), and [1815](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1815), which cover prevailing wages, the eight hour day and 40 hour week, and overtime pay ([Labor Code 1776(a)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1776)). That declaration is the contractor's. DIR's XML form has the signer state authority to act for and on behalf of the contractor, and [8 CCR 16401(b)](https://www.dir.ca.gov/t8/16401.html) uses the same words. Whoever prepares the file, the sign off is yours. On the manual iForm, [DIR's guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) shows Preview eCPR submission and Edit eCPR before the Contractor Signature, an acknowledgement box, and Submit. On the XML form the certification and Signature field sit on the upload form itself, so review the payroll in the file before you upload it.
6. **Keep the confirmation.** Save the confirmation, the XML file you uploaded, and a copy of what was filed. Certified copies must be available for inspection at your principal office, and you must tell the awarding body where the records are kept, with five working days to report a change of location ([Labor Code 1776(b) and (g)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1776)).

## The XML upload form, field by field

1. On the main landing page, find the project under Active Projects. In the Submit new eCPR column, open the Submit menu and choose XML. You can also click View eCPRs next to the project and use Submit eCPR, then XML eCPR ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)).
2. Complete **Contractor**, **Contract With**, and **DIR Project ID**. Contract With is the agency or contractor you are in direct contract with, per the [schema](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd). Answer **Is this XML upload an Amendment to a previous payroll?** In [DIR's screenshot](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) the answer is No. Click **Upload** to attach the file under Upload XML File.
3. Read the certification above the Signature field. It is made by someone with authority to act for the contractor, under penalty of perjury, and says the records are the originals or true, full, and correct copies of the originals ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)). Enter the **Signature** and click **Submit**. The date is filled in for you.
4. Wait. [DIR's guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) says the system takes several minutes to process the XML and create a payroll record, and its example message says about 3 minutes. If the page does not refresh after a few minutes, refresh your browser.

## When the upload comes back with an error

[DIR's Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) shows the system posting a message after you submit. Its example begins "Contractor/Project Information selected on form does not match with XML Data" and ends by saying the request cannot be fulfilled. DIR does not say which fields it compares. Check the DIR Project ID first: the [guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf) say the Project ID in the file must match the project you are filing for. Then check Contract With against the contractAgency element, which is how the [schema](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd) describes it, and the contractor on the form against contractorInfo. The guide sends you to DIR's XML guide for the mandatory XML information. The full list of rules that reject files is on the [upload errors page](https://wellstanding.com/guides/ecpr-xml-upload-errors/).

## How often

[DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says at least monthly, or more often if the contract with the awarding body requires it, and words the monthly rule as "within a month after the end of the payroll period." The statute defines monthly differently: a submission at least once every 30 days while work is being performed, and within 30 days after the final day of work on the project ([Labor Code 1771.4(a)(3)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1771.4)). The statute is the controlling text. DIR's FAQ says "The best practice is to submit the records weekly" or at the conclusion of each payroll period ([DIR FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html)). Federal work is a separate rule. The U.S. Department of Labor says covered contractors on federal or federally assisted construction contracts are required by the Davis-Bacon and Related Acts regulations and the contract clauses to submit payroll information weekly, and that using Form WH-347 for it is optional ([DOL Form WH-347](https://www.dol.gov/agencies/whd/forms/wh347)). The full calendar is on the [deadlines page](https://wellstanding.com/guides/certified-payroll-deadlines-california/).

## What the GC's portal does not do

Sending your payroll to a prime contractor, an awarding body, a union, or a Labor Compliance Program does not replace your submission to DIR. DIR's FAQ asks if you still have to submit to DIR in that case. Its answer is yes, and it says "Submitting certified payroll records to other agencies does not fulfill the requirement" ([DIR FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html)). The same FAQ lists the projects the Labor Commissioner has exempted from electronic submission: projects monitored by four legacy Labor Compliance Programs (Caltrans, the City of Los Angeles, the Los Angeles Unified School District, and the County of Sacramento), projects covered by a qualifying project labor agreement, and projects under the small project exemption. Which portal each body uses is mapped on the [portals page](https://wellstanding.com/guides/gc-portals-and-dir/).

## Who can see what you filed

Filed records are searchable by the public through DIR's CPR Public Search with confidential information removed ([DIR](https://www.dir.ca.gov/public-works/certified-payroll-reporting.html)). [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says records found through its certified payroll records search tool can be viewed and printed in fully redacted form. It says full redaction removes all personal, identifiable employee information (name, address, phone number, and SSN) as well as the contractor's federal ID (FEIN) or SSN and email address. To save or print a complete version of your own payroll record, the FAQ says you can export your PDF in DIR Public Works website services. Assume others can read the redacted version of your filings, and file accordingly.

## What we do instead

WellStanding prepares the WH-347 and the eCPR from the payroll export you already run, and a person reviews every filing. You review the finished filing and sign the certification in one step, and nothing is filed until you have signed. Once you have signed, we file it with DIR. The certification is always yours; we never sign for you. [Labor Code 1776(a)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1776) has the declaration state that the employer complied, and the certification form in [8 CCR 16401(b)](https://www.dir.ca.gov/t8/16401.html) has the signer state a position in the business and authority to act for and on behalf of it. First filing free.

## Questions

The project is not in the DIR system. What now?**

The awarding body has to register the project with DIR (the PWC-100) before any contractor can submit an eCPR for it ([DIR SB 854 FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html)). Contact the awarding body to confirm it registered the project. If it has not, ask it to complete the registration as soon as possible, and ask for the DIR Project ID once it has. Keep the email as a record that you asked. If the awarding body still has not registered the project, DIR's FAQ says to contact DIR at publicworks@dir.ca.gov.

Where do I find the DIR Project ID for my job?**

Ask the awarding body or the prime first. Or sign in at services.dir.ca.gov/pw, click Link to a project under Project Actions, and search by DIR Project ID or Project Name. Once linked, the project and its ID show in your Active Projects list ([DIR guide](https://www.dir.ca.gov/Public-Works/Guides/Request-Addition-to-a-project.pdf)).

What does the XML file have to be named?**

It has to end in .xml. DIR's current guidelines, [version 2.0 from March 2026](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf), give that as the only naming rule and use testpayroll123.xml as the example. DIR's [January 2016 guidelines](https://www.dir.ca.gov/Public-Works/CPR/eCPRXMLGuideline.pdf) showed a longer pattern with the last four digits of the FEIN, the Project ID, and the week ending date, which is a way to sort your own files.

How long does an XML upload take to process?**

[DIR's Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) says the system takes several minutes to process your XML and create a payroll record. Its example system message says about 3 minutes. If the page has not refreshed after a few minutes, refresh your browser.

The portal says the contractor or project information does not match the XML data. What do I check?**

That is the example error in [DIR's Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf). DIR does not say which fields it compares. Check the DIR Project ID first, because the [guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf) say the Project ID in the file must match the project you are filing for. Then check Contract With against the contractAgency element, and the contractor against contractorInfo.

How do I correct a payroll after I submit it?**

You cannot change or delete a submitted payroll. [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says you can correct errors by submitting a new record for the same pay period. The new or amended record for an employee takes precedence over the original, and the original stays on file and visible along with its amendments. If you are only correcting some employees, you do not need to resend the employees whose information was entered correctly. On the XML form, DIR's [Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) says to indicate whether the upload is an amendment to a previous payroll. Our guide to [correcting a certified payroll report](https://wellstanding.com/guides/correct-certified-payroll-report/) has the details.

Our GC collects our payroll in its own portal. Are we covered?**

Not with the state. [DIR's FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) says submitting certified payroll records to other agencies does not fulfill the requirement to submit to the Labor Commissioner. Unless the project is one the FAQ lists as exempt, such as a project monitored by one of the four legacy Labor Compliance Programs, you file the eCPR directly with DIR as well.

Can someone else submit for us?**

WellStanding prepares and files the record. The certification is the contractor's. DIR's XML form has the signer state that they have the authority to act for and on behalf of the contractor ([DIR Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf)), and [Labor Code 1776(a)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=1776) has the declaration under penalty of perjury state that the employer complied. WellStanding prepares the WH-347 and the eCPR from the payroll export you already run, and a person reviews every filing. You review the finished filing and sign the certification in one step, and nothing is filed until you have signed. The certification is always yours; we never sign for you.

## Sources

Every figure on this page links to its source where it first appears. The full list, in order:

1. [DIR's Upload eCPR guide](https://www.dir.ca.gov/Public-Works/Guides/Upload-eCPR.pdf) dir.ca.gov
2. [CPRSample.xml](https://www.dir.ca.gov/Public-Works/CPR/CPRSample.xml) dir.ca.gov
3. [CPR.xsd](https://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd) dir.ca.gov
4. [DIR's version 2.0 guidelines](https://www.dir.ca.gov/Public-Works/Guides/eCPR-XML-guidelines.pdf) dir.ca.gov
5. [Public Works Services Portal](https://services.dir.ca.gov/pw) services.dir.ca.gov
6. [DIR FAQ](https://www.dir.ca.gov/Public-Works/PublicWorksSB854FAQ.html) dir.ca.gov
7. [Labor Code 1773.3(a)(1), (a)(2), and (j)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1773.3) leginfo.legislature.ca.gov
8. [Labor Code 1771.4(a)(3)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1771.4) leginfo.legislature.ca.gov
9. [Labor Code 1725.5](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1725.5) leginfo.legislature.ca.gov
10. [Support Center](https://www.dir.ca.gov/Public-Works/SupportCenter.html) dir.ca.gov
11. [DIR guide](https://www.dir.ca.gov/Public-Works/Guides/Request-Addition-to-a-project.pdf) dir.ca.gov
12. [Account Registration Guide](https://www.dir.ca.gov/Public-Works/Guides/DIR-Account-Registration-Guide.pdf) dir.ca.gov
13. [January 2024 notice](https://www.dir.ca.gov/Public-Works/Upgrades-to-DIRs-Public-Works-Website-Services.html) dir.ca.gov
14. [January 2016 guidelines, version 1.10](https://www.dir.ca.gov/Public-Works/CPR/eCPRXMLGuideline.pdf) dir.ca.gov
15. [2016 XML user guide](https://www.dir.ca.gov/Public-Works/documents/CPR-XML-Upload-User-Guide.pdf) dir.ca.gov
16. [DIR's certified payroll reporting page](https://www.dir.ca.gov/public-works/certified-payroll-reporting.html) dir.ca.gov
17. [1771](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1771) leginfo.legislature.ca.gov
18. [1811](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1811) leginfo.legislature.ca.gov
19. [1815](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1815) leginfo.legislature.ca.gov
20. [Labor Code 1776(a)](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&amp;sectionNum=1776) leginfo.legislature.ca.gov
21. [8 CCR 16401(b)](https://www.dir.ca.gov/t8/16401.html) dir.ca.gov
22. [DOL Form WH-347](https://www.dol.gov/agencies/whd/forms/wh347) dol.gov

## Related

- [eCPR XML upload errors and fixes](https://wellstanding.com/guides/ecpr-xml-upload-errors/)
- [The DIR eCPR system explained](https://wellstanding.com/guides/dir-ecpr-system/)
- [PWC-100 and the DIR Project ID](https://wellstanding.com/guides/pwc-100-explained/)
- [Certified payroll deadlines in California](https://wellstanding.com/guides/certified-payroll-deadlines-california/)
- [Correcting a certified payroll report](https://wellstanding.com/guides/correct-certified-payroll-report/)
- [LCPtracker vs DIR](https://wellstanding.com/guides/lcptracker-vs-dir/)
