ComplianceSeptember 19, 2026

eCPR checks the filing before DIR does

A certified payroll file that DIR rejects costs you a trip back through the portal, and the error it comes back with is a schema complaint, not a sentence. It tells you an element underran its minimum length. It does not tell you your company record is missing an email.

Three things were producing files the State's schema would refuse, and none of them showed up as a problem on our end.

  • A missing company email or address. Both are mandatory on the filing. If your company record didn't carry them, the file went out with the fields empty rather than stopping. The run now checks for them up front, alongside the CSLB licence, PWCR, FEIN and insurance number it already checked, and names the one that's missing.
  • Two structural gaps in the generated XML — a required placeholder element we weren't emitting, and a notes element we left out whenever a worker had no note attached. Both are fixed.

Settings now checks the company email as you save it, too. DIR caps it at 60 characters and wants an ordinary [email protected] shape; an address that can't be filed is caught in the form rather than months later on a Friday night.

Worth knowing: the underlying cause was that we were checking our work against our own reconstruction of DIR's schema rather than DIR's schema. We have the real one now, and it's what the generator is tested against on every build. Anything it would reject, we reject first.

Open it in the app →

Want in?

STrOp is onboarding California specialty contractors in small batches — bid through warranty in a single pipeline.

Request beta access →