What changed in V2
DIR published version 2.0 of the eCPR XML schema in October 2026. Its release notes describe three kinds of change.
- Removed: the contractor license, FEIN, address, insurance number and email, and the project name, number, contract IDs and location block. DIR already has these on file. The payroll number and amendment number are assigned by the system and must be left empty or omitted.
- Changed: the contractor PWCR number is now required, and the "NA" option is gone. An employee's name is split into first, last and middle name. The awarding body is optional and kept for reference only.
- Added: an employee can have several classifications, each with its own hours, pay rates and fringe benefits. Each classification has an employee level and an apprentice level. A new fringe-paid section says whether fringe went to the employee or to a benefit plan. Deductions have a new "other" category. A top-level version element must read 2.0.
The deadline
According to DIR's V2 FAQ, V1 submissions are supported until January 13, 2027. Every XML file must also carry a version element, and for V2 it must be 2.0. If your payroll software still exports V1, you can import that file here and convert it.
What DIR now requires in each file
- A 10-digit PWCR number. It must match the registration number DIR has on file. A missing or mismatched PWCR causes a hard submission failure.
- A numeric project ID. It must match the project ID registered with DIR. You can look it up on DIR's project search.
- Split names. First and last name are required, up to 56 characters each. Middle name is optional.
- A full SSN or ITIN. Nine digits, with at least one present. SSNs must be unique within the file.
- Classification name plus craft. Each classification needs a populated name and a craft.
- Journeyman or apprentice level. Apprentices also carry a level from 1 to 10.
- Seven days of hours. Each classification lists exactly seven days, with straight time, overtime and doubletime for each. Day 7 is the week ending date, and the six days before it fill the rest of the week. Combined hours across classifications cannot pass 24 in a day.
- fringePaid and hourly fringe. At least one of "paid to employee" and "paid to benefit plan" must be true. Health and welfare, vacation and holiday, pension, training and other fringe amounts are all required, as hourly figures.
- Source-of-truth totals. DIR stores the total hourly pay rates, total deductions, gross for this project, gross for all work and net wage exactly as you enter them. It does not recalculate them. Each total hourly rate is the base rate plus the fringe amounts for that classification.
Elements must also appear in the exact order the schema defines, or the file fails even if every value is present. This tool writes them in that order for you.
The most common reasons a file is rejected
- A PWCR number that is missing, not 10 digits, or does not match DIR's records, including the old "NA" value.
- A project ID that is missing or does not match a registered project.
- A classification with no name attribute.
- Duplicate SSNs in the same file. DIR rejects the affected employees. Put both classifications under one employee instead.
- First or last name tags that are missing or in the wrong place.
- Deduction tags that are missing or placed outside the deductions block.
- Daily hours that do not add up to the totals, or a day count other than seven.
- An invalid date, such as July 32.
Some problems pass validation and still make the data wrong. DIR's FAQ warns that total deductions must equal the sum of the deduction fields, and that the total straight-time hourly rate should never equal gross pay, which usually means a field is mapped to the wrong source. It also notes that identical deduction amounts across several employees may mean deductions were copied from one record to the others. The tool flags each of these as a warning.
How to upload your file
- Log in at services.dir.ca.gov/pw and open the project.
- Choose Submit, then XML upload, and select your file. File names are up to you as long as the extension is .xml.
- For files with fewer than 250 employees, choose "upload as DRAFT to preview before submission" in Payroll Options. The system saves a draft you can review and edit before you submit it.
- Files with more than 250 employees cannot be held as drafts. They are submitted straight away, so check them before you upload. A single file can hold up to 500 employees.
Passing DIR's schema check means the file is shaped correctly. It does not mean the hours, rates and totals are right, and you are the one who reviews and signs.
Classification and craft names
DIR does not publish a complete list of valid classification and craft names. Use the names exactly as they appear in your certified payroll records. If DIR does not recognize a name, its system changes it to "Other." This tool cannot check names against a list that is not public, so it only makes sure that each one is filled in.
How often eCPR is due
Under Labor Code section 1771.4, certified payroll goes to the Labor Commissioner at least monthly, or more often if your contract says so. "Monthly" means a submission at least once every 30 days while work is being performed, and again within 30 days after the last day of work on the project. The penalty for missing it is $100 per day, up to $5,000 per project.
Frequently asked questions
Do I have to switch to the V2 XML schema?
Yes, if you upload eCPR as XML. DIR says V1 submissions will still be supported until January 13, 2027, so contractors and software vendors have time to update their schema files. DIR also says it will send reminder notifications to all registered public works contractors before the cutover. After that date, plan on uploading V2 files only.
Does DIR need a full Social Security number?
Yes. Each employee needs a 9-digit SSN or a 9-digit ITIN, with no dashes or spaces. At least one of the two must be filled in, and if both are present the SSN takes priority. Each SSN must be unique in the file, so a worker who did two kinds of work belongs on one employee record with two classifications.
Where is the list of valid classification and craft names?
DIR says a complete list is not publicly available, though it is looking into whether one can be provided. Until then, use the names as they appear in your certified payroll records. If a name is not recognized, the system changes it to "Other." Every classification must still have a populated name, or the file fails validation.
If my file passes validation, is the data correct?
Not necessarily. Schema validation checks the structure of the file, not whether the numbers are right. Total deductions, gross pay, net wages and the total hourly pay rates are stored exactly as you enter them and are not recalculated by DIR. This tool works them out for you, but you still need to review the payroll and sign it.
How do I report a week with no work?
Upload it the same way as any other eCPR, with the statement of non-performance set to true. DIR adds no employee information for that week, even if the file contains some. In this tool, check the non-performance box and the employee section is left out of the file.