Skip to main content
Securitize withholds tax on an investor’s distributions according to the tax form it holds for them. Your investors complete that form with you: send it to Securitize, and it is on file for the investor, recorded as sent by you.
If your investors fill in their W-9 in your app rather than sign a PDF, send its fields as JSON: Securitize generates the form’s PDF. The W-8BEN and W-8BEN-E are sent as signed PDFs only. The examples use $BASE for https://partners-api.sandbox.securitize.io/investors/v1/onboarding-reliance and $ACCESS_TOKEN for a bearer token (get one).
A tax form is not a verification document. Identity and company documents go to the document routes, as base64 JSON or multipart/form-data; a tax form goes to the routes on this page: a signed PDF as a file, or a W-9’s fields as JSON.

Which form

You choose the form from what you know about the investor. Securitize checks only that it fits the investor’s type: a W-8BEN-E for an individual, or a W-8BEN for an entity, answers 422 tax_form_type_not_allowed, and details.allowed lists the forms the investor can receive.

Before you send it

The investor does not need to be verified: send the form when the investor completes it, at any point of the verification.

Send a signed PDF

The body is multipart/form-data, the format of a web form with a file field, in three parts: Let your HTTP client build the body. It writes the content-type header itself, with the boundary that separates the parts: do not set content-type yourself (a header without that boundary answers 400 with Multipart: Boundary not found), and do not base64-encode the file.
201 means the form is on file for the investor. The answer is a receipt: there is no call to read or list an investor’s tax forms. Each upload answers with a new taxFormId, even for the same form: keep the latest, and quote it to Securitize support about this form.

The signature date of a PDF

signatureDate is the date the investor signed the form, as YYYY-MM-DD. It can be at most one day after today in UTC, so a form signed today is accepted in any time zone; a later date answers 400 validation_error. For a W-8BEN or W-8BEN-E, it also sets when the form expires: on December 31 of the third year after the year it was signed. A form signed on 2026-10-20 is valid until 2029-12-31. The API does not tell you when a form expires: keep the date with the investor in your system, and send a newly signed form before it. A W-8 signed so long ago that this date has passed is accepted, but it is out of date: ask the investor to sign a new one. A W-9 has no expiry date.

PDF file rules

  • One PDF per call, in the part named file. A second file answers 400 with the message Too many files; a file in a part with another name answers 400 with Unexpected field.
  • At most 10 MB (10,485,760 bytes). A larger file answers 413 payload_too_large, but only once it has been uploaded: check the size before sending.
  • The file is judged by its first bytes. Its name and declared type do not matter, so an image renamed .pdf answers 415 mime_not_supported. Convert a scan to PDF before sending it.
  • The PDF is kept exactly as you send it. Send the complete signed form, every page.
  • In sandbox, any PDF of at most 10 MB works as a test file, such as a page printed to PDF. Never send a real investor’s form there.

Send a W-9 as data

The body is the W-9’s fields, as JSON, each named after its line on the form; the form type is implied by the route. The TIN is 9 digits without dashes, as an SSN (also for an ITIN) or an EIN; a corporation, a partnership or an LLC taxed as either sends an EIN. Every field, its rules and its values are in the W9Data reference.
201 means the W-9 is on file for the investor; keep its taxFormId to quote to Securitize support.
  • The generated PDF is signed with the line 1 name and dated the day Securitize receives the form. Send the W-9 when the investor completes it.
  • A W-9 sent as data does not replace a form in force. While the investor has one on file (valid, or pending review), the call answers 409 tax_form_already_active, and details.activeTaxForm names it (taxFormId, formType) when it can be read. To correct or replace it, contact Securitize support with that taxFormId.

The certification

Before you send a W-9 as data, the investor certifies it in your flow, under penalties of perjury: show them the certification text below, have them agree to it, and send what they agreed to in certification. A W-9 without it answers 400 validation_error.

Certification text w9-sm-2026-10

Show the investor, in this order: who the certification is made to, the name, address and TIN they entered (the TIN masked, with a way to correct any of them), the certification, a box to certify it, the instructions, and the button that signs.
Requester: Securitize Markets, LLC (FINRA-registered broker-dealer). This certification is made to Securitize Markets to open your brokerage account. Under penalties of perjury, I certify that:
  1. The social security number (SSN) shown above is my correct taxpayer identification number.
  2. I am not subject to backup withholding because:
    1. I have not been notified by the IRS that I am subject to backup withholding as a result of a failure to report all interest or dividends, or
    2. the IRS has notified me that I am no longer subject to backup withholding.
  3. I am a US citizen or permanent resident or other US person for tax purposes.
  4. The FATCA code(s) entered on this form (if any) indicating that I am exempt from FATCA reporting is correct. (Note: We are legally required to present this here, but it is not applicable to Securitize Markets customers because Securitize Markets accounts are US-based.)
☑ I certify the above to be true Certification instructions Do not uncheck the box above unless you’ve been notified by the IRS that you are subject to backup withholding. This means that you have failed to report all interest and dividends on your tax return. If you were notified, you would’ve received a C-notice from the IRS. If your name, address or SSN is incorrect, please go back and correct it before continuing. By tapping Agree, you are electronically signing a Form W-9 that Securitize Markets, LLC will generate on your behalf from the information shown. Your consent and the date and time of your signature will be recorded. The Internal Revenue Service does not require your consent to any provision of this document other than the certifications required to avoid backup withholding.
Show the text as published, without changes, and send its version in certificationTextVersion. The box starts checked; an investor who unchecks it is subject to backup withholding (subjectToBackupWithholding: true). Record when the investor taps Agree as certifiedAt. An investor subject to backup withholding cannot send the W-9 as data. subjectToBackupWithholding: true answers 422 business_rule_violation with details.reason backup_withholding_not_supported, and nothing is kept. Contact Securitize support for that investor.

One form on file

An investor has one tax form on file. Each PDF upload replaces the one before it, whatever its type: when an investor who sent a W-8BEN becomes a US person, their new W-9 replaces it. Sending the same PDF again is safe; it replaces the copy on file with the same form. A W-9 sent as data is put on file only while the investor has no form in force: otherwise it answers 409 tax_form_already_active and the form on file stays. An expired or rejected form does not count.

When it fails

A refused request (400, 404, 409 investor_not_owned, 415, 422) keeps nothing: correct it and send it again. A 404 investor_not_found usually means your externalInvestorId went where Securitize’s investorId belongs.
  • A 502 on a PDF upload (file_upload_failed, tax_form_registration_failed) means nothing was attached to the investor: send the same request again.
  • A 502 or a timeout on a W-9 sent as data means the form may or may not be on file: send the same request again. A 201 puts it on file; a 409 tax_form_already_active whose details.activeTaxForm.formType is W-9, for an investor you sent no other W-9, means the first attempt is on file: keep that taxFormId.
Every field, response and example is in the API reference: upload a signed PDF and send a W-9 as data.