Skip to article content
Product Features

Certified Payroll with QuickBooks: WH-347 Guide

QuickBooks Desktop and Online Payroll both produce a certified payroll report. Here is what they cover, where they stop, and how to finish your WH-347.

CertifiedPayrollPro TeamSeptember 12, 20269 min read
All Articles

QuickBooks is the most common accounting system in construction, so "how do I do certified payroll in QuickBooks" is one of the first questions a contractor asks after winning a federally funded job. The honest answer is more interesting than a yes or no: Intuit does ship a certified payroll report, on both QuickBooks Desktop Payroll and the higher tiers of QuickBooks Online Payroll, and it genuinely saves time. It also stops short of a submission-ready WH-347, and the gap is specific and predictable.

What you'll learn

  • What the certified payroll report in QuickBooks Desktop and QuickBooks Online actually produces
  • The setup each one requires before the report will run at all
  • The five gaps you fill by hand: rates, fringe credit, the Statement of Compliance, weekly formatting, and state forms
  • A worked week with real numbers, including the mistake that shows up in Column 6A

Does QuickBooks do certified payroll?

Yes, with conditions, and the conditions differ by product.

QuickBooks Desktop Payroll

QuickBooks Desktop Payroll has offered a certified payroll report for years. You reach it at Reports, then Employees & Payroll, then More Payroll Reports in Excel, then Certified Payroll Report. Per Intuit's help article on creating prevailing wage and certified payroll reports in QuickBooks Desktop Payroll, it runs on Enhanced and Assisted payroll, it requires a full version of Microsoft Excel, and you need Primary Administrator access in single-user mode. Intuit also notes that the Department of Labor's 2025 revision of the WH-347 brought new fields, column headings, and calculations, which changed how the report runs and looks.

One product note worth knowing before you build a workflow on Desktop: Intuit stopped selling new subscriptions of QuickBooks Desktop Pro Plus, Premier Plus, Mac Plus, and Desktop Enhanced Payroll to new U.S. subscribers after September 30, 2024. Existing subscribers can renew, and QuickBooks Enterprise was not affected. Separately, Intuit's Desktop Payroll discontinuation policy retires payroll service by product version on published dates, so if you are on Desktop today, check your specific version against Intuit's discontinuation page rather than assuming the report will be there next year.

QuickBooks Online Payroll

QuickBooks Online Payroll has a certified payroll report too, delivered through Intuit QuickBooks Workforce, and per Intuit's setup article it is available on the Premium and Elite plans. Core is not included. You run it from Reports, then Standard reports, then search for the certified payroll report, choose the pay period and project, and download a spreadsheet.

Intuit's own review article is refreshingly clear about what the download does not contain. You must supply the Project ID, the Wage Determination Number, the Certified Payroll Number, the worker entry number, apprentice and journeyworker information, and the Statement of Compliance. Those are not small fields. They are most of what makes a payroll "certified."

The prerequisite that surprises people

Both products expect a weekly pay schedule covering every employee on the project, and QuickBooks Online additionally expects the job to exist as a Project with hours captured on weekly timesheets. If you pay biweekly or semimonthly, the certified payroll report will not line up with the weekly WH-347 the agency wants, and fixing that means changing your pay schedule or rebuilding the week by hand.

The setup QuickBooks needs before the report works

This is the part most contractors underestimate. The report is only as good as the payroll items behind it.

  • Desktop: create prevailing wage payroll items named for each work classification (Carpentry, Electrical, General Labor), turn on job costing so hours land against the right job, set affected employees to a weekly pay frequency, and attach fringe benefit items.
  • Online: create the Project, set a weekly pay schedule, and build custom pay types for straight time and overtime for each job classification. Intuit recommends naming them with the wage determination number plus the classification, then ST or OT. Company-paid benefits such as 401(k) or health and dental can be configured so they surface on page 2 of the report.

Do that work once and the weekly run gets much faster. Skip it and the report either refuses to run or produces a grid you cannot defend.


Where QuickBooks stops: the five gaps

1. Prevailing wage rates by classification and county

QuickBooks pays the rate you typed into the pay item. It does not know the wage determination for your contract, and it will not tell you that the Laborer Group 1 rate in your county went up. The determination that governs your job is fixed by the contract, and under 29 CFR 5.5 you must pay no less than the listed base rate plus fringe for each classification. Finding and applying the right one is a separate job, covered in our guide to prevailing wage determinations.

2. Fringe benefit credit per classification

This is the deepest gap. QuickBooks tracks what you paid for benefits. Davis-Bacon asks a different question: what hourly credit may you take against the fringe obligation for this classification, after annualizing the cost across every hour the worker works, public and private. DOL's Fact Sheet 66E explains the annualization principle: credit is limited to the hourly cost averaged over all hours worked in the year, so a Davis-Bacon job cannot be the disproportionate funder of a plan that covers all hours. A monthly premium in QuickBooks is not that number until you do the math.

Then the credit has to land in the right place on the form. On the January 2025 WH-347, Column 6A is an hourly base rate, while Column 6B carries the week's total plan credit in dollars and Column 6C carries the week's total cash paid in lieu of fringe. Per-plan hourly credits go in the page 2 table. Our Column 6B guide and our guide to cash versus bona fide fringe walk through both, and the free fringe benefit calculator gives you the cash-in-lieu figure per hour once you enter the rate and your plan contributions.

3. The Statement of Compliance

Page 2 of the WH-347 is a signed certification that the payroll is correct and complete and that every worker was paid no less than the applicable rate. The DOL WH-347 instructions state that use of the form itself is optional, but every certified payroll must be accompanied by a signed Statement of Compliance with identical wording, and that weekly submission is required by the DBRA regulations and the contract clauses. Intuit's Online article lists the Statement of Compliance among the fields you complete yourself. No payroll system can generate it, because it is an attestation by a person, not a calculation.

4. Weekly WH-347 formatting and the filing clock

A spreadsheet is not a form. Someone has to transfer the grid into the WH-347 layout, with daily hours on the top and bottom lines of Column 4, the project gross in Column 7A and the all-work gross in 7B, and a consecutive payroll number on every week. The clock is tight: certified payroll is due within 7 days after the regular payment date for that payroll period under 29 CFR 3.4(a). The deadline runs from the day you pay the crew, not the day the pay period ends, which is the single most common misreading we see.

One more formatting rule that trips up spreadsheet exports: full Social Security numbers must never appear on a submitted weekly payroll. Under 29 CFR 5.5(a)(3)(ii)(B) the submitted payroll carries an individually identifying number, such as the last four digits, and the January 2025 form has a Worker Identifying No. field rather than an SSN field. If you review an export that shows full SSNs, strip them before anything leaves your office.

5. State forms

Intuit's certified payroll documentation addresses the federal WH-347. Many states run their own system. California requires certified payroll records submitted to the Labor Commissioner through DIR's online eCPR service, and DIR's Public Works Payroll Reporting Form (A-1-131) plus the Statement of Employer Payments is the presumptive-compliance paper path. Our California DIR guide covers that workflow. Illinois and New York have their own formats as well. A federal-only report will not satisfy them.


A worked week, with numbers

One carpenter, one federally funded job, one week. The wage determination lists Carpenter at a $31.20 base rate plus $14.10 in fringe. He works Monday through Thursday, 8 hours a day, on the covered project, then Friday on a private remodel at $28.00 an hour. No overtime.

Employer-paid benefits, annualized over 2,080 hours: health insurance at $780 a month is $9,360 a year, or $4.50 an hour. Vacation and holiday accrual is $1.10 an hour. A 3 percent 401(k) match on the $31.20 base is $0.94 an hour. Total plan credit: $6.54 an hour. Required fringe is $14.10, so cash owed in lieu is $7.56 an hour.

WH-347 field Value Where it comes from
Column 4, daily hours 8, 8, 8, 8 (32 project hours) QuickBooks timesheets, project hours only
Column 6A, hourly base rate $31.20 Wage determination, not a blended pay item
Column 6B, week's plan credit $209.28 (32 x $6.54) Annualized benefit cost, computed by you
Column 6C, week's cash in lieu $241.92 (32 x $7.56) Cash fringe pay item in QuickBooks
Column 7A, project gross $1,240.32 $998.40 base plus $241.92 cash fringe
Column 7B, all-work gross $1,464.32 Project gross plus $224.00 private work

Now the mistake. It is tempting to set up one QuickBooks pay item called "Carpenter" at $38.76 an hour, the base plus the cash fringe, because that is what the check is for. Do that and Column 6A reports $38.76 instead of $31.20, the fringe columns read zero, and your overtime math is wrong too: on covered federal work, premium pay is one and one half times the basic hourly rate, while the fringe portion is paid at the straight figure for all hours and is never multiplied. Keep the base rate and the cash fringe as separate pay items. Everything downstream depends on it.


The mistakes that turn into DOL findings

  • Internal job titles standing in for classifications. "Foreman," "Tech II," and "Crew Lead" are not wage determination classifications. Each worker is reported under the classification on the determination, at the rate for the work actually performed.
  • Whole-week hours on one project's report. Only covered project hours belong in Column 4. Deductions are still shown against the worker's full weekly gross, which is why 7A and 7B exist.
  • Un-annualized benefit credit. Dividing a monthly premium by project hours inflates the credit and underpays fringe. Annualize across all hours worked.
  • Late submissions. Monthly batching is the most common finding of all, and the 7 day clock from the payment date leaves no room for it.
  • Unsigned or missing page 2. A grid without a signed Statement of Compliance is a payroll report, not a certified payroll.
  • Overtime violations on covered work. Under 29 CFR 5.5(b)(2), CWHSSA liquidated damages run $33 per worker for each calendar day of an overtime violation, on top of back wages.

A practical weekly workflow

  1. Run payroll in QuickBooks as usual, with base rate and cash fringe as separate pay items and hours coded to the job or Project.
  2. Export the payroll detail. In Desktop: Reports, then Employees & Payroll, then Payroll Details, export to Excel and save as CSV. In Online, export the payroll or certified payroll report as a spreadsheet.
  3. Import it into your certified payroll tool. CertifiedPayrollPro auto-detects the CSV columns, so workers, hours, rates, and pay land in a draft payroll and returning crew match week over week. Direct QuickBooks API import is on our roadmap, and today the CSV path is the supported one. See CertifiedPayrollPro for QuickBooks for the details.
  4. Add the compliance layer. Assign Davis-Bacon classifications, confirm the wage determination number, and check the base and fringe split before you certify.
  5. Generate, sign, and submit the WH-347, or your state's form, within 7 days after the regular payment date.

Nothing here requires leaving QuickBooks. Your books, your job costing, and your tax filings stay exactly where they are. The compliance report sits on top of the same data, and it only runs for the weeks and projects that need it, which matters if you move between private and public work.

Run payroll in QuickBooks? Add certified payroll on top.

Import your QuickBooks payroll CSV and generate a compliant WH-347 in minutes. Keep your accounting exactly as it is.

Start your free trial

Frequently asked questions

Does QuickBooks Online do certified payroll?

Yes, on the Premium and Elite payroll plans, through Intuit QuickBooks Workforce. You set up a Project, a weekly pay schedule, and custom pay types per classification, then download the certified payroll report as a spreadsheet. Intuit's own documentation lists the fields you still complete by hand, including the Wage Determination Number, the Certified Payroll Number, apprentice and journeyworker information, and the Statement of Compliance.

How do I run certified payroll in QuickBooks Desktop?

Reports, then Employees & Payroll, then More Payroll Reports in Excel, then Certified Payroll Report. You need a full version of Microsoft Excel, Primary Administrator access, and single-user mode, plus prevailing wage payroll items named by classification and job costing enabled. Check Intuit's discontinuation policy for your product version before you commit to this as a long-term workflow.

Does the QuickBooks report give me a finished WH-347?

It gives you most of the wage data in a spreadsheet. It does not produce the signed Statement of Compliance, it does not know your wage determination, it does not annualize your fringe credit, and it does not output state forms such as California's eCPR. Those are the steps a dedicated certified payroll tool exists to handle.

Do I have to switch payroll systems?

No. Keep QuickBooks as your system of record for paychecks, taxes, and job costing. Export the payroll data each week and layer the certified payroll report on top. Nothing about your accounting changes.

What about prevailing wage rates in QuickBooks?

QuickBooks pays what you enter. It does not look up or monitor prevailing wage rates by classification and county, and it will not flag a pay item that has fallen below the determination. That check belongs in your compliance layer, and it is worth running before you certify rather than after an agency reads your report.

Before your first submission

Have three things in hand: the wage determination number from the contract documents, the correct classification for every crew member on that determination, and your fringe approach, whether that is bona fide plans, cash, or a mix. If any of those are new to you, start with our guides to the Davis-Bacon Act and filling out the WH-347. The first week is the hard one. After that, it is a repeat.

This guide is for informational purposes only and is not affiliated with or endorsed by Intuit. QuickBooks and Intuit are registered trademarks of Intuit Inc. Product features and plan availability change, so confirm current details in Intuit's help center. Certified payroll requirements vary by agency, state, and project. Always review your specific contract and consult a compliance professional as needed. Last updated: September 2026.

QuickBookscertified payrollWH-347payroll importDavis-Bacon

Free tools & guides