Forms / IRS
Fill Form W-8BEN-E programmatically
Form W-8BEN-E — Certificate of Status of Beneficial Owner (Entities). Official IRS PDF, 8 pages, 179 fields read automatically.
When the vendor is a company rather than a person, the one-page W-8BEN becomes the eight-page W-8BEN-E — and it sits unreturned in inboxes for weeks, because the person it lands on has to work out which of thirty parts apply to their entity before they can answer anything. Platforms that pay foreign businesses collect the classification answers in their own onboarding anyway; the form should be assembled from them.
What you send
Real field names, straight from the PDF — the excerpt shows the first 5 of 179. The full list is in the table below, and the template hands you the complete JSON schema to copy.
{
"data": {
"topmostSubform[0].Page1[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].c1_1[0]": true,
"topmostSubform[0].Page1[0].c1_1[1]": true
}
}
// …plus 173 more fields, all listed belowWhat you get back
The completed Form W-8BEN-E, 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 W-8BEN-E 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 W-8BEN-E
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].f1_1[0] | text | |
| topmostSubform[0].Page1[0].f1_2[0] | text | |
| topmostSubform[0].Page1[0].f1_3[0] | text | |
| topmostSubform[0].Page1[0].c1_1[0] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[1] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[2] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[3] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[4] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[5] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[6] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[7] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[8] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[9] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[10] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[11] | checkbox | |
| topmostSubform[0].Page1[0].c1_1[12] | checkbox | |
| topmostSubform[0].Page1[0].c1_2[0] | checkbox | |
| topmostSubform[0].Page1[0].c1_2[1] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[0] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[1] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[2] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[3] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[4] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[5] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[6] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[7] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[8] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[9] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[10] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[11] | checkbox | |
| topmostSubform[0].Page1[0].Col1[0].c1_3[12] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[0] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[1] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[2] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[3] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[4] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[5] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[6] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[7] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[8] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[9] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[10] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[11] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[12] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[13] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[14] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[15] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[16] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[17] | checkbox | |
| topmostSubform[0].Page1[0].Col2[0].c1_3[18] | checkbox | |
| topmostSubform[0].Page1[0].f1_4[0] | text | |
| topmostSubform[0].Page1[0].f1_5[0] | text | |
| topmostSubform[0].Page1[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].Page2[0].f2_1[0] | text | max 11 chars |
| topmostSubform[0].Page2[0].Line9a_ReadOrder[0].f2_2[0] | text | |
| topmostSubform[0].Page2[0].Line9b_ReadOrder[0].f2_3[0] | text | |
| topmostSubform[0].Page2[0].c2_1[0] | checkbox | |
| topmostSubform[0].Page2[0].f2_4[0] | text | max 19 chars |
| topmostSubform[0].Page2[0].CheckboxesCol1_ReadOrder[0].c2_2[0] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesCol1_ReadOrder[0].c2_2[1] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesCol2_ReadOrder[0].c2_2[0] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesCol2_ReadOrder[0].c2_2[1] | checkbox | |
| topmostSubform[0].Page2[0].c2_2[0] | checkbox | |
| topmostSubform[0].Page2[0].f2_5[0] | text | |
| topmostSubform[0].Page2[0].f2_6[0] | text | |
| topmostSubform[0].Page2[0].f2_7[0] | text | |
| topmostSubform[0].Page2[0].f2_8[0] | text | |
| topmostSubform[0].Page2[0].c2_3[0] | checkbox | |
| topmostSubform[0].Page2[0].f2_9[0] | text | |
| topmostSubform[0].Page2[0].c2_4[0] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesLine14b_ReadOrder[0].c2_5[0] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesLine14b_ReadOrder[0].c2_5[1] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesLine14b_ReadOrder[0].c2_5[2] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesLine14b_ReadOrder[0].c2_5[3] | checkbox | |
| topmostSubform[0].Page2[0].CheckboxesLine14b_ReadOrder[0].c2_5[4] | checkbox | |
| topmostSubform[0].Page2[0].c2_5[0] | checkbox | |
| topmostSubform[0].Page2[0].c2_5[1] | checkbox | |
| topmostSubform[0].Page2[0].c2_5[2] | checkbox | |
| topmostSubform[0].Page2[0].c2_5[3] | checkbox | |
| topmostSubform[0].Page2[0].c2_5[4] | checkbox | |
| topmostSubform[0].Page2[0].c2_5[5] | checkbox | |
| topmostSubform[0].Page2[0].f2_10[0] | text | |
| topmostSubform[0].Page2[0].c2_6[0] | checkbox | |
| topmostSubform[0].Page2[0].f2_11[0] | text | |
| topmostSubform[0].Page2[0].f2_12[0] | text | |
| topmostSubform[0].Page2[0].f2_13[0] | text | |
| topmostSubform[0].Page2[0].f2_14[0] | text | |
| topmostSubform[0].Page2[0].f2_15[0] | text | |
| topmostSubform[0].Page2[0].f2_16[0] | text | |
| topmostSubform[0].Page2[0].f2_17[0] | text | |
| topmostSubform[0].Page2[0].c2_7[0] | checkbox | |
| topmostSubform[0].Page2[0].c2_8[0] | checkbox | |
| topmostSubform[0].Page3[0].c3_1[0] | checkbox | |
| topmostSubform[0].Page3[0].c3_2[0] | checkbox | |
| topmostSubform[0].Page3[0].f3_1[0] | text | |
| topmostSubform[0].Page3[0].c3_3[0] | checkbox | |
| topmostSubform[0].Page3[0].c3_4[0] | checkbox | |
| topmostSubform[0].Page3[0].c3_5[0] | checkbox | |
| topmostSubform[0].Page3[0].c3_6[0] | checkbox | |
| topmostSubform[0].Page4[0].c4_1[0] | checkbox | |
| topmostSubform[0].Page4[0].c4_1[1] | checkbox | |
| topmostSubform[0].Page4[0].c4_2[0] | checkbox | |
| topmostSubform[0].Page4[0].c4_3[0] | checkbox | |
| topmostSubform[0].Page4[0].c4_4[0] | checkbox | |
| topmostSubform[0].Page4[0].c4_4[1] | checkbox | |
| topmostSubform[0].Page5[0].c5_1[0] | checkbox | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet1[0].f5_01[0] | text | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet1[0].c5_2[0] | checkbox | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet1[0].c5_2[1] | checkbox | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet1[0].f5_2[0] | text | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet2[0].f5_03[0] | text | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet2[0].c5_3[0] | checkbox | |
| topmostSubform[0].Page5[0].BulletedList1[0].Bullet2[0].c5_3[1] | checkbox | |
| topmostSubform[0].Page5[0].c5_4[0] | checkbox | |
| topmostSubform[0].Page5[0].c5_5[0] | checkbox | |
| topmostSubform[0].Page5[0].c5_5[1] | checkbox | |
| topmostSubform[0].Page5[0].c5_6[0] | checkbox | |
| topmostSubform[0].Page5[0].c5_6[1] | checkbox | |
| topmostSubform[0].Page5[0].c5_6[2] | checkbox | |
| topmostSubform[0].Page6[0].c5_6[0] | checkbox | |
| topmostSubform[0].Page6[0].c5_6[1] | checkbox | |
| topmostSubform[0].Page6[0].c5_6[2] | checkbox | |
| topmostSubform[0].Page6[0].c6_1[0] | checkbox | |
| topmostSubform[0].Page6[0].c6_2[0] | checkbox | |
| topmostSubform[0].Page6[0].c6_3[0] | checkbox | |
| topmostSubform[0].Page6[0].c6_4[0] | checkbox | |
| topmostSubform[0].Page6[0].BulletList4[0].Bullet1[0].f6_1[0] | text | |
| topmostSubform[0].Page6[0].c6_5[0] | checkbox | |
| topmostSubform[0].Page6[0].BulletList5[0].Bullet1[0].f6_2[0] | text | |
| topmostSubform[0].Page7[0].c7_1[0] | checkbox | |
| topmostSubform[0].Page7[0].BulletList1[0].Bullet1[0].f7_1[0] | text | |
| topmostSubform[0].Page7[0].c7_2[0] | checkbox | |
| topmostSubform[0].Page7[0].c7_3[0] | checkbox | |
| topmostSubform[0].Page7[0].BulletList3[0].Bullet2[0].f7_2[0] | text | |
| topmostSubform[0].Page7[0].c7_3[1] | checkbox | |
| topmostSubform[0].Page7[0].BulletList4[0].Bullet3[0].f7_3[0] | text | |
| topmostSubform[0].Page7[0].BulletList4[0].Bullet4[0].f7_4[0] | text | |
| topmostSubform[0].Page7[0].c7_4[0] | checkbox | |
| topmostSubform[0].Page7[0].c7_5[0] | checkbox | |
| topmostSubform[0].Page7[0].c7_6[0] | checkbox | |
| topmostSubform[0].Page7[0].c7_7[0] | checkbox | |
| topmostSubform[0].Page7[0].c7_7[1] | checkbox | |
| topmostSubform[0].Page8[0].c8_1[0] | checkbox | |
| topmostSubform[0].Page8[0].f8_1[0] | text | |
| topmostSubform[0].Page8[0].c8_2[0] | checkbox | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow1[0].f8_3[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow1[0].f8_4[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow1[0].f8_5[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow2[0].f8_6[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow2[0].f8_7[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow2[0].f8_8[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow3[0].f8_9[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow3[0].f8_10[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow3[0].f8_11[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow4[0].f8_12[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow4[0].f8_13[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow4[0].f8_14[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow5[0].f8_15[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow5[0].f8_16[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow5[0].f8_17[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow6[0].f8_18[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow6[0].f8_19[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow6[0].f8_20[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow7[0].f8_21[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow7[0].f8_22[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow7[0].f8_23[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow8[0].f8_24[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow8[0].f8_25[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow8[0].f8_26[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow9[0].f8_27[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow9[0].f8_28[0] | text | |
| topmostSubform[0].Page8[0].Table_Part29[0].BodyRow9[0].f8_29[0] | text | max 11 chars |
| topmostSubform[0].Page8[0].c8_3[0] | checkbox | |
| topmostSubform[0].Page8[0].f8_30[0] | signature | |
| topmostSubform[0].Page8[0].f8_31[0] | text | |
| topmostSubform[0].Page8[0].f8_32[0] | text | max 10 chars |
Thirty parts, of which any one filer needs about three
Almost every field on the W-8BEN-E belongs to a part that most entities skip: one chapter 4 status selects one certification part and makes the other two dozen irrelevant. Conditional visibility handles this shape — drive the parts off the classification your onboarding already asked for, and the embedded form shows a vendor only the sections that concern them, which is the difference between a week of back-and-forth and a five-minute task.
Questions people ask
- W-8BEN or W-8BEN-E?
- W-8BEN is for individuals, W-8BEN-E for entities — a platform paying both kinds of vendor typically runs one template of each and routes at onboarding. Both work the same way here.
- Can I prefill the parts we already know?
- Yes — POST what your records hold (name, country, addresses, classification) as prefill, lock those fields read-only with a form profile, and the vendor completes only their certifications and signature.
See your Form W-8BEN-E 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 W-8BEN-E 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.