NYSDOL certified payroll XML bulk upload

Turn your payroll data into the XML file the NYSDOL Certified Payroll portal accepts, checked against the state's schema. A person at your company uploads it, reviews the week, attests, and submits.

NYSDOL payroll XML: week ending 03/08 (sample)
2 to fix before upload
SampleProject_03082026.xml
<ProjectRollup>
<prcNumber>0000000000</prcNumber>
<weekEndingDate>
2026-03-08T00:00:00.000Z
</weekEndingDate>
<employeeWorkWeeks>
<employeeWorkWeek>
<employee>
<firstName>Sample</firstName>
<lastName>Worker A</lastName>
<dateOfBirth>2000-01-01</dateOfBirth>
<ssnLast4>0000</ssnLast4>

Portal rejects a record with both of these.

Checked before upload
CheckResult
Records212 records
Project and weekMatch
Worker ID1 has both
workCategory1 not on list
Week in portalPerson confirms

The XSD allows any text in workCategory, so the list check is separate.

Sample data. Every name and number here is made up.

How it runs.

New York requires electronic payrolls at least every 30 days on Article 8 work. Keying every worker by hand is slow, and a submitted report cannot be amended.

  1. Payroll for the week

    Hours, rates, deductions and benefits for one project and one week.

    Your data
  2. Build and validate XML

    Written to NYDOL_CertPayroll.xsd. Classifications compared with the portal's list.

    Automated
  3. A person uploads, attests

    Staff sign in, fix listed errors, complete the Declaration, and click Submit.

    A person
  4. File kept on record

    The XML and submission date are stored by project and week.

    Automated

NYSDOL Certified Payroll portal / NY.gov account / NYDOL_CertPayroll.xsd / XML Work Classification List / Payroll system export

The rules and limits.

File rules
XML only, no CSV or spreadsheet. One project and one week per file. Up to 500 employee records. NYSDOL says no API is available.
PRC number and date
prcNumber must match the project selected, and weekEndingDate the week selected, in the form 2025-09-01T12:00:00.000Z.
Worker identity
Each employee needs ssnLast4 or dateOfBirth, never both. An employee cannot repeat in a file. Several classifications go under the one employee.
Empty weeks only
A file loads only into a week with no current entries. Once a report is submitted, it cannot be amended or changed.
Spelling trap
The guide's table says deductionGrossEarnings. The XSD and NYSDOL's sample file say deductionsGrossEarnings. Build to the XSD.

What a person does.

  • Sign in with an NY.gov account and upload each file.
  • Read the portal's error list and decide each correction.
  • Review the loaded week, then complete the Acknowledge and Declaration.
  • Decide the classification when a worker's trade is unclear.

Where we stand: we have not shipped this. Your staff or a NYSDOL-authorized user uploads and attests. We would not log in to the portal.

Common questions.

Can a payroll company or outside firm file for us?+

NYSDOL's guide mentions payroll managers and says to contact NYSDOL to set up an authorized user. It does not address an outside firm filing. Ask NYSDOL. We would only prepare the file.

Is there an API for the portal?+

No. NYSDOL's bulk upload guide says an API for the Certified Payroll portal is not available at this time. Files go in through the portal, by a person signed in.

Does this make us compliant?+

No. It prepares a file that fits NYSDOL's format. Accuracy and the attestation stay with you. Payrolls are due at least every 30 days. Certain New York City projects use a separate city system.

Sources

General information, not legal, tax, or compliance advice. Rules change; confirm against the current source and your own advisers.

Bring us your version of this.

Intro calls are 30 minutes, free, and useful even if we never work together. We'll be honest about whether this is the right fit for your construction team.