Two ways to onboard
The rest of this page is about the API. For the other way, see Hosted onboarding.
How it works
Securitize relies on your verification, but it does not delegate screening. Securitize screens every investor, and every person behind a company, against sanctions and politically-exposed-person (PEP) lists. A hit goes to a Securitize compliance operator, and the investor readsmanual-review while they look at it: it is not a rejection.
Everything is asynchronous: your calls create the investor and hand it over, and the verdict arrives later. A KYC webhook tells you when the status changes, and a separate poller in your system reads it.
The whole picture
Individuals and companies go through the same steps:- Create the investor and store the
investorIdSecuritize returns. - For a company, declare its key parties: the people who own or control it, and any companies that hold shares in it.
- Send the documents: an identity document for each person; company documents for corporate shareholders.
- Submit. Nothing is verified until you do.
- Poll the investor’s
statusuntil it isverified. - To let the investor hold tokens: register its wallets, send its suitability (and the DLT test in the European Economic Area), then whitelist a wallet on a token.
- Send the tax form, at any point of the verification: the W-9, W-8BEN or W-8BEN-E it signed, as a PDF, or a W-9’s fields and its certification as JSON, so Securitize has it on file for withholding.
Hosted onboarding
A Securitize-hosted page with only the onboarding steps; no screens to build.
Onboard an individual
Create, identity document, submit, verdict.
Onboard a company
The company, the people behind it, their documents, submit, verdict.
Wallets
Register the addresses an investor holds.
Whitelist a wallet
Let a wallet receive and hold a token.
Suitability and the DLT test
The investor profile, and the knowledge test in the EEA.
Send a tax form
The W-9 or W-8 the investor signed, as a PDF, or a W-9’s fields as JSON.
Go-live checklist
What to check in sandbox before production.
Before you start
- An agreement with Securitize. It sets how quickly your investors become
verified(as soon as they are submitted, or once screening answers) and which tokens you can whitelist. Requests and responses are the same either way. - Sandbox client credentials (a client id and secret) from your Securitize contact, exchanged for a bearer token. See Sandbox and authentication.
- Production uses the same API with production client credentials, arranged with Securitize once your integration passes the go-live checklist.
What makes this API different
- Nothing is verified until you submit. A document never starts a verification on its own.
- A create can answer
200: the investor was already registered with Securitize. Branch on the status code. - Creates are safe to repeat with the same body; document uploads are not: a repeated upload is stored twice.
PUTreplaces the whole record. Omitted optional fields are cleared.- Every path that names an investor takes Securitize’s
investorId, never your own id. YourexternalInvestorIdis a filter onGET /investors. See Identifiers. - An error without a
codecomes from the gateway: on a401, get a new token.
Not available
NoIdempotency-Key header, no deletes. email and externalInvestorId cannot change after the create; contact Securitize if one must.
Every operation, field and response is in the API reference in the sidebar, where you can also try each call against sandbox with a token from Get an access token.