Registry
Form WH-347 — programmatic fill compatibility
Payroll (For Contractor's Optional Use) — certified payroll for federally financed construction · US Department of Labor, Wage and Hour Division · OMB expires 2028. Tested 2026-08-07 on the unmodified upstream blank — every number below comes from a recorded run, not from documentation.
Verdict at a glance
| Tool | Version | Result | Detail |
|---|---|---|---|
| pdfops API | hosted, tested 2026-08-07 | no form fields (flat PDF) | error: |
| pdf-lib | 1.17.1 | verified (0/0) | 0 fields filled in-process |
| @cantoo/pdf-lib (fork) | 2.6.5 | verified (0/0) | 0 fields filled in-process |
| pypdf | 6.15.0 | text fields verified (0/0) | 0 text fields written and re-read (text fields only) |
| pdftk-java | 3.3.3 | verified (0/0) | 0 fields filled via FDF and re-dumped |
| qpdf --check | 11.9.0 | structurally clean | errors that qpdf cannot detect |
| poppler render check | 24.02.0 | values missing from render | 0/0 filled text values present in pdftotext output of the pdf-lib-filled file; page-1 raster sha256 29f509d5c983… |
File facts
- Source: https://www.dol.gov/sites/dolgov/files/WHD/legacy/files/wh347.pdf (issuer page: here)
- Blank tested: dol-wh-347.pdf · 298 KB · sha256
fa28f033a8250dc3c209fe9c8e7f5cfcde70f8f0cb11a6ab2486eaebdd5db557 - License: US federal government work — public domain (17 U.S.C. § 105). The hash-verified blank is redistributed here unmodified.
- Structure: 2 pages · AcroForm
- Fields: 0 ()
Quirks & limitations
- Weekly certified payroll for every Davis-Bacon federal construction contract — construction-payroll SaaS exists largely to generate this form.
- dol.gov blocks scripted fetches of the blank; retrieved via a real browser session (same lane as SSA-89).
Tested request
The unmodified blank is rejected at parse time, so there is no working direct request to show — see the quirks above for the verified decrypt-first workaround.
Frequently asked
Can I fill the Form WH-347 programmatically?
Not by writing field values — the unmodified blank carries zero AcroForm fields; every page is flat content. All seven tools in the matrix agree (0 fields enumerated everywhere). To produce a completed Form WH-347 you either generate the document, overlay text at coordinates, or add real fields to the blank first — drawing them in the browser at pdfops.dev/tools/make-fillable exports a standard AcroForm version that any filler (including the pdfops API) then handles.
← All forms in the registry · Inspect your own PDF · Make a flat PDF fillable