Tax · Internal Revenue Service
Fill IRS Form W-9 programmatically for every vendor.
Collect contractor and vendor details in your own UI, then have SimplyFill render a perfectly-filled W-9 from that data — pre-filled and ready for the payee to certify and sign.
What is Form W-9?
Form W-9, Request for Taxpayer Identification Number and Certification, is how a U.S. payer collects a payee’s legal name, tax classification, and TIN so it can issue a 1099 at year end.
Who files it?
Any business that pays an independent contractor, freelancer, or vendor $600+ in a year requests a W-9 from that payee before issuing payment or a 1099.
Why filling Form W-9 by hand hurts
The W-9 packs a federal tax-classification radio group, conditional LLC sub-type, and split SSN/EIN boxes onto one page — all behind IRS AcroForm names like `topmostSubform[0].Page1[0].f1_01[0]`. Pre-filling it for thousands of vendors by hand is exactly the kind of repetitive work an API should erase.
Fill Form W-9 in one call
Pre-fill a W-9 from a vendor record
const res = await fetch('https://api.simplyfill.app/v1/generate', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SIMPLYFILL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
template: 'w9_rev2024',
data: {
legal_name: 'Ada Lovelace Consulting LLC',
tax_classification: 'llc_s_corp',
address: '1 Market St, San Francisco, CA 94105',
ein: '12-3456789',
},
}),
})
const { url } = await res.json()
// Send url to the vendor to review, certify, and signFields on Form W-9
Real form fields are named for the PDF spec, not for humans — so a single value can hide behind something like topmostSubform[0].Page1[0].f1_02[0]. SimplyFill lets you map your own readable keys to these once, then forget they exist.
| Raw PDF field name | What it means |
|---|---|
| topmostSubform[0].Page1[0].f1_01[0] | Name (as shown on tax return) |
| topmostSubform[0].Page1[0].f1_02[0] | Business name / disregarded entity name |
| topmostSubform[0].Page1[0].FederalClassification[0].c1_1[0] | Federal tax classification (radio group) |
| topmostSubform[0].Page1[0].f1_05[0] | Address (number, street, apt/suite) |
| topmostSubform[0].Page1[0].SSN[0].f1_11[0] | Social security number |
| topmostSubform[0].Page1[0].EmployerID[0].f1_14[0] | Employer identification number (EIN) |
Frequently asked questions
How does SimplyFill handle the SSN vs EIN boxes?
The W-9 splits the TIN across per-digit SSN boxes and per-digit EIN boxes. You send a single `ssn` or `ein` string and SimplyFill distributes the digits into the correct boxes and leaves the other set blank.
Can the payee still sign after I pre-fill it?
Yes — pre-fill the identifying fields and leave the certification signature/date for the payee. Pass the generated PDF to your e-sign provider, or deliver it for a wet signature.
Which tax-classification options are supported?
All of them: individual/sole proprietor, C corporation, S corporation, partnership, trust/estate, and LLC with its sub-classification. You pass one value and SimplyFill resolves the radio group and any conditional LLC field.
Do you keep up with W-9 revisions?
The template is versioned to the IRS revision (e.g. `w9_rev2024`). New revisions are added as new versions so your integration upgrades deliberately, never silently.
Stop hand-filling Form W-9.
Start with a 14-day free trial. Define the template once, then fill Form W-9 from your data with a single API call.