Onboarding happens once per investor. After that, each order is a handful of calls: see Trade a stock.
1. Onboard and verify the investor
Onboard the investor with the SecId API, with the identity data and documents you already hold: Securitize relies on your verification, and runs its own sanctions and PEP screening on top. Poll the investor’s status until it isverified (Statuses).
Store the investorId the SecId API returns. It is the id every Stocks API call takes.
How quickly an investor reaches verified depends on your agreement with Securitize, not on the API: on submission, or once screening answers.
2. Send the suitability, and the DLT test in the EEA
Securitize Markets has to form its own view of whether trading suits each investor, whoever verified their identity. Send the investor’s suitability with the SecId API, and for an investor whose address is in the European Economic Area, their DLT test. Both are described in Suitability and the DLT test. An investor whose suitability is notverified gets UNAUTHORIZED_INVESTOR on every price and order.
3. Link the trading wallet
The investor trades from one wallet on each chain, linked to them with their own signature: that signature proves they control it, and is kept as the record of their agreement to the Securitize wallet terms. Every order on that chain is built for this wallet.blockchainType names the chain: see Chains.
Get the message, and have it signed verbatim.
agreementMessage to your frontend and have the investor’s wallet sign its UTF-8 bytes as a message. Never compose or change the text: it is the investor’s agreement to Securitize’s terms, not yours. Send the signature hex-encoded, not in base58; a 0x prefix is optional. With a Solana wallet, for example:
WALLET_VALIDATION_FAILED on its orders.