How to automate W-9 collection from contractors (and stop chasing them every January)
· 8 min read · OnFile team
Every January, a familiar pattern repeats in property management offices and contractor back-offices across the country. Someone — usually whoever runs accounting — opens a spreadsheet of every contractor paid more than $600 the prior year, and starts typing emails. "Hi Mike, can you send over a W-9? Tax season." Two weeks later, half are missing. A week before the IRS 1099 filing deadline (January 31), it's a small crisis.
If you've lived this, you know the specifics: the contractor who installed an HVAC unit nine months ago has now changed phone numbers. The PDF you downloaded from their email last March is somewhere in your Drive but you can't find it. Two of your subs share an LLC and you accidentally collected the wrong TIN. One refuses to fill out the form because they "didn't think they needed to."
None of this is your fault — but it's all your problem. And the cost of getting it wrong is real: incorrect 1099s mean IRS B-notices, backup-withholding requirements, and (if it gets ugly) penalties that scale per missing form.
The chase is fixable. Almost none of the manual work is necessary if you set up the right collection workflow once.
What the IRS actually requires
Before designing a workflow, get clear on what the IRS actually wants. The rules are simpler than they look.
You need a W-9 from any U.S. person you pay $600 or more in a calendar year for trade-or-business services. That includes most contractors, freelancers, attorneys (regardless of dollar amount, by the way — attorneys are special), landlords if you pay rent on commercial property, and many service providers. Corporations are largely exempt, but you still want the W-9 to confirm corporate status — that's exactly what the W-9 is for.
The form itself collects four things you actually need:
- Legal name and business name. These can differ; the legal name has to match what's on file with the IRS.
- Federal tax classification. Sole proprietor, single-member LLC, S-corp, etc.
- Taxpayer Identification Number (TIN). Either an SSN or EIN.
- A signature certifying the information is correct under penalty of perjury.
You're required to retain the W-9 for at least four years after the form's relevant tax year ends — the IRS can ask to see it during an audit. That's not a "nice to have"; it's a regulatory minimum.
The deadline that matters is January 31, which is when 1099-NEC forms must be both filed with the IRS and furnished to the contractor. To meet it, you need every TIN from every paid contractor lined up by mid-January at the latest.
All of that should be running on autopilot the moment you onboard a new contractor — not in January.
The manual workflow most teams run — and where it breaks
Here's what the manual workflow looks like at most small ops teams. None of these steps is wrong on its own, but the whole thing collapses under any kind of scale.
- You email the contractor. "Hi, can you send me a completed W-9?" Half the time you forget to attach the form.
- They Google the form. They land on the IRS's PDF of Form W-9, download it, open it in Preview or Acrobat, and try to fill it in. Sometimes they print, sign, and scan. Sometimes they take a photo of the printed form lying on a kitchen counter.
- They email it back — eventually. Some take 48 hours. Some take three weeks. A few never reply, and you forget about them until January.
- You save the file somewhere. Maybe Dropbox. Maybe a Drive folder named "W-9s 2026." Maybe an attachment you star in Gmail. Three weeks later, you can't remember which.
- You repeat for every contractor. Including the ones you onboarded last quarter. And the ones who renewed. And the ones whose business name changed.
Where it breaks:
- Discoverability. When you need the file eight months later, finding it requires searching three apps. Sometimes it just isn't there.
- Validation. Nothing checks that the TIN field was actually filled in, or that the form was signed. You discover the gap when you go to file the 1099.
- Renewals. A W-9 doesn't formally "expire," but the moment a contractor changes business structure (sole prop → LLC, LLC → S-corp), the one on file is wrong. There's no built-in way to know.
- Audit trail. When the IRS asks "when did you collect this?" you'd better have the email thread. Hope you do.
Every one of these failures is a system failure, not a people failure. The fix is to stop running the workflow in your inbox.
What an automated W-9 workflow looks like
A working W-9 collection workflow has five components. You can build them, buy them, or stitch them together — the components themselves don't change.
1. One-time request via a secure upload link (no contractor login)
The single biggest reduction in friction is removing the contractor login. Don't make a vendor create an account, set a password, or remember a portal — they will not do it. Send a tokenized URL: one click, the form, upload, done. The token expires after a reasonable window (30–90 days) and is single-use.
This one decision determines whether the workflow gets adopted. Every contractor login screen you put in front of a busy plumber is a 30 percent drop in completion rate.
2. Validation on submission
The portal should refuse the upload if the file doesn't have what's required. At minimum:
- File is a PDF or clear image (not a 10 MB camera-roll dump).
- File parses (OCR can read it).
- TIN field, business name, and signature are present.
If anything's missing, the contractor sees the error immediately and re-uploads. They don't get to send you junk and disappear.
3. Auto-extraction of structured data
Once a W-9 is uploaded, the values you actually need (TIN, business name, classification) should be extracted into your system as structured data — not stuck inside a PDF you have to re-open every time. This is where modern OCR earns its keep: a single PDF takes 2–4 seconds to extract end-to-end, with confidence scores per field so you know which ones to spot-check.
The non-obvious benefit: structured TIN data lets you check it against the IRS TIN-matching service before you file the 1099. Catching a wrong TIN in October is cheap; catching it via a CP2100 notice in March is not.
4. Annual re-confirmation
W-9s don't formally expire, but contractor information changes constantly: new addresses, new business entities, new TINs. Build in a scheduled annual nudge — the system asks the contractor "is the W-9 you sent us last year still accurate?" If yes, they click confirm. If no, they upload a new one. The whole loop should take them under 30 seconds.
5. Audit trail per vendor
Every action — request sent, file uploaded, field extracted, value changed, re-confirmation acknowledged — should be timestamped and attributable. When the IRS or your auditor asks, you should be able to show the entire history per vendor in one click. This is also what protects you when a contractor disputes the TIN you used on their 1099.
Build vs. buy
If you have an in-house engineering team and a meaningful number of contractors (say, 100+), you can build this. The components are well-trodden:
- Auth and tokenized links: ~1 week
- Secure storage with retention policy: ~1 week
- Email request and reminder cadence: 3–5 days
- OCR pipeline (OpenAI Vision or AWS Textract, with field validation): 1–2 weeks
- Audit log and admin UI: 1–2 weeks
- Yearly maintenance: a few days when something inevitably breaks
Total: roughly 3–6 weeks of focused engineering, plus ongoing maintenance.
If you don't have engineers, or you have 10–100 contractors and the math doesn't pencil out, the right answer is to buy. Tools in this space — including OnFile — start around $49/month and handle the entire lifecycle: request, upload, OCR extraction, re-confirmation, audit trail. The break-even is somewhere in the range of "ten contractors and one missed January 31."
Either way, the principle is the same: stop running W-9 collection out of your inbox.
What "good" looks like at year-end
If you've put the workflow in place during onboarding and let it run, here's what January looks like:
- You open the system.
- You filter contractors paid ≥ $600 last year.
- You export a CSV: legal name, business name, TIN, address, classification.
- You feed it to your 1099 generator — Track1099, Tax1099, your accountant, whoever.
- You file before noon on January 30. You sleep.
No spreadsheet of "still need to chase," no last-minute emails, no calling Mike from HVAC at 9 p.m. on the 30th. The whole thing is data that's already there, because the work was done at the front of the relationship instead of the back.
That's the entire promise of automating W-9 collection: you do the chase exactly once, when you onboard the contractor, and never again.