Forms / IRS
Fill Form SS-4 programmatically
Form SS-4 — Application for Employer Identification Number. Official IRS PDF, 2 pages, 89 fields read automatically.
Every company-formation platform produces SS-4s, because every new entity needs an EIN and the fax-and-phone paths still want the paper form. The applicant answered every question during signup; the SS-4 is those answers rearranged onto the IRS's two pages, which is precisely the work a template API should absorb.
What you send
Real field names, straight from the PDF — the excerpt shows the first 5 of 89. The full list is in the table below, and the template hands you the complete JSON schema to copy.
{
"data": {
"topmostSubform[0].Page1[0].PgHeader[0].f1_1[0]": "string",
"topmostSubform[0].Page1[0].f1_2[0]": "string",
"topmostSubform[0].Page1[0].f1_3[0]": "string",
"topmostSubform[0].Page1[0].f1_4[0]": "string",
"topmostSubform[0].Page1[0].Line4ReadOrder[0].f1_5[0]": "string"
}
}
// …plus 84 more fields, all listed belowWhat you get back
The completed Form SS-4, streamed back as the response — or delivered to your webhook, HMAC-signed.
curl -X POST https://www.doc2api.co/api/v1/templates/<ID>/fill \ -H "X-Api-Key: d2a_live_…" \ -H "Content-Type: application/json" \ -d @payload.json -o filled.pdf # → the completed Form SS-4 as a PDF. # With a webhook configured, the reply is JSON and the # document arrives at your endpoint as a signed URL.
Or skip the mapping entirely: embed the actual form on your site and let the person it belongs to fill and sign it — you receive the values as JSON and the finished PDF.
Every field on Form SS-4
Extracted automatically from the official PDF — this table is generated by the same code that reads your uploads. In the editor, each of these is highlighted on the page itself, so you never map a name blind.
| Field name | Type | Notes |
|---|---|---|
| topmostSubform[0].Page1[0].PgHeader[0].f1_1[0] | text | max 10 chars |
| topmostSubform[0].Page1[0].f1_2[0] | text | |
| topmostSubform[0].Page1[0].f1_3[0] | text | |
| topmostSubform[0].Page1[0].f1_4[0] | text | |
| topmostSubform[0].Page1[0].Line4ReadOrder[0].f1_5[0] | text | |
| topmostSubform[0].Page1[0].Line4ReadOrder[0].f1_6[0] | text | |
| topmostSubform[0].Page1[0].f1_7[0] | text | |
| topmostSubform[0].Page1[0].f1_8[0] | text | |
| topmostSubform[0].Page1[0].f1_9[0] | text | |
| topmostSubform[0].Page1[0].f1_10[0] | text | |
| topmostSubform[0].Page1[0].f1_11[0] | text | max 11 chars |
| topmostSubform[0].Page1[0].c1_1[0] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[1] | checkbox | |
| topmostSubform[0].Page1[0].f1_12[0] | text | |
| topmostSubform[0].Page1[0].c1_2[0] | checkbox | |
| topmostSubform[0].Page1[0].c1_2[1] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[0] | checkbox | |
| topmostSubform[0].Page1[0].f1_13[0] | text | max 11 chars |
| topmostSubform[0].Page1[0].c1_3[1] | checkbox | |
| topmostSubform[0].Page1[0].f1_14[0] | text | max 11 chars |
| topmostSubform[0].Page1[0].c1_3[2] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[3] | checkbox | |
| topmostSubform[0].Page1[0].f1_15[0] | text | max 11 chars |
| topmostSubform[0].Page1[0].c1_3[4] | checkbox | |
| topmostSubform[0].Page1[0].f1_16[0] | text | |
| topmostSubform[0].Page1[0].c1_3[5] | checkbox | |
| topmostSubform[0].Page1[0].f1_17[0] | text | max 11 chars |
| topmostSubform[0].Page1[0].c1_3[6] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[7] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[8] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[9] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[10] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[11] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[12] | checkbox | |
| topmostSubform[0].Page1[0].f1_18[0] | text | |
| topmostSubform[0].Page1[0].c1_3[13] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[14] | checkbox | |
| topmostSubform[0].Page1[0].c1_3[15] | checkbox | |
| topmostSubform[0].Page1[0].f1_19[0] | text | |
| topmostSubform[0].Page1[0].f1_20[0] | text | |
| topmostSubform[0].Page1[0].f1_21[0] | text | |
| topmostSubform[0].Page1[0].f1_22[0] | text | |
| topmostSubform[0].Page1[0].c1_4[0] | checkbox | |
| topmostSubform[0].Page1[0].f1_25[0] | text | |
| topmostSubform[0].Page1[0].f1_26[0] | text | |
| topmostSubform[0].Page1[0].c1_4[1] | checkbox | |
| topmostSubform[0].Page1[0].f1_27[0] | text | |
| topmostSubform[0].Page1[0].c1_4[2] | checkbox | |
| topmostSubform[0].Page1[0].c1_4[3] | checkbox | |
| topmostSubform[0].Page1[0].c1_4[4] | checkbox | |
| topmostSubform[0].Page1[0].f1_28[0] | text | |
| topmostSubform[0].Page1[0].c1_4[5] | checkbox | |
| topmostSubform[0].Page1[0].c1_4[6] | checkbox | |
| topmostSubform[0].Page1[0].f1_29[0] | text | |
| topmostSubform[0].Page1[0].c1_4[7] | checkbox | |
| topmostSubform[0].Page1[0].c1_4[8] | checkbox | |
| topmostSubform[0].Page1[0].f1_24[0] | text | |
| topmostSubform[0].Page1[0].f1_30[0] | text | |
| topmostSubform[0].Page1[0].f1_31[0] | text | |
| topmostSubform[0].Page1[0].f1_32[0] | text | |
| topmostSubform[0].Page1[0].f1_33[0] | text | |
| topmostSubform[0].Page1[0].f1_34[0] | text | |
| topmostSubform[0].Page1[0].f1_35[0] | text | |
| topmostSubform[0].Page1[0].c1_5[0] | checkbox | |
| topmostSubform[0].Page1[0].f1_36[0] | text | |
| topmostSubform[0].Page1[0].c1_6[0] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[1] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[2] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[3] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[4] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[5] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[6] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[7] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[8] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[9] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[10] | checkbox | |
| topmostSubform[0].Page1[0].c1_6[11] | checkbox | |
| topmostSubform[0].Page1[0].f1_37[0] | text | |
| topmostSubform[0].Page1[0].f1_38[0] | text | |
| topmostSubform[0].Page1[0].c1_7[0] | checkbox | |
| topmostSubform[0].Page1[0].c1_7[1] | checkbox | |
| topmostSubform[0].Page1[0].f1_39[0] | text | max 10 chars |
| topmostSubform[0].Page1[0].f1_40[0] | text | |
| topmostSubform[0].Page1[0].f1_41[0] | text | |
| topmostSubform[0].Page1[0].f1_42[0] | text | |
| topmostSubform[0].Page1[0].f1_43[0] | text | |
| topmostSubform[0].Page1[0].f1_44[0] | text | |
| topmostSubform[0].Page1[0].f1_45[0] | text | |
| topmostSubform[0].Page1[0].f1_46[0] | text |
A form made mostly of branches
The SS-4 is a decision tree flattened onto paper — entity-type checkboxes, reason-for-applying, lines that apply only to some structures. The extracted schema carries each checkbox group with its real options, and conditional logic can hide the branches your entity type makes irrelevant, so an LLC's form doesn't arrive with corporation lines half-filled.
Questions people ask
- Does filling the SS-4 get me an EIN?
- No — the EIN comes from the IRS, and for most applicants the fastest path is the IRS's own online assistant. The PDF matters when you're filing by mail or fax, when the online path doesn't apply (foreign applicants, some third-party designees), or when clients simply need the completed record.
- Can my customer review it before filing?
- Yes — return the PDF into your flow for review, or embed the filled form read-only and let them confirm before you transmit anything.
See your Form SS-4 pipeline working in the next five minutes
The button uploads the official PDF into the editor as a live template with an API key — no account, nothing to cancel. Trial documents are watermarked and kept for 24 hours; sign up to keep your work.
Doc2api is not affiliated with the Internal Revenue Service. Form SS-4 is a public government work; the copy here is the official revision, refreshed from irs.gov. Nothing on this page is tax or legal advice — how a completed form may be signed, filed or retained is defined by the issuing agency.