Create a person, send their identity document, submit, and read the verdict.
An individual is verified with the identity data you send and one identity document. Nothing is verified until you submit: the create and the document only prepare the investor.
1. POST /investors/individual create the person → investorId2. POST /investors/{investorId}/documents their identity document3. POST /investors/{investorId}/verification/submit start verification4. GET /investors/{investorId} poll for the verdict
The examples use $BASE for https://partners-api.sandbox.securitize.io/investors/v1/onboarding-reliance and $ACCESS_TOKEN for a bearer token (get one). Replace the identifiers in them (externalInvestorId, email, taxId) with fresh values of your own: the examples already exist in sandbox.
Store the investorId from the response. Things that commonly go wrong:
taxId and taxCountry are required: together they identify the person. Placeholders such as 000000000, 123456789 or TEST are refused, with or without separators (123-45-6789 too).
For a US person, send the Social Security number with the name and residential address it is registered to. Securitize checks that they match, and a mismatch can send the investor to manual-review (see Statuses).
email is unique across all of Securitize, not just your account, and cannot be changed after the create. Use the person’s own address.
address.state is for US addresses only: the 2-letter state code (NY). Leave it out for any other country, even if your form collects a province or region; otherwise the create answers 400 validation_error on address.state.
Branch on the status code.201 is a new investor. 200 means the person is already registered with Securitize and another party leads the verification: you get limited access.
Repeating the same create is safe. If a create timed out or answered 502, send exactly the same body again: you get 201 with the same investorId. The same externalInvestorId with different data answers 409 external_investor_id_conflict, with the investorId in details.
2. Send the identity document
One identity document per person, with all of its files in the same call:
Files are JPEG or PNG, base64-encoded (a data: URL prefix is accepted), at most 10 MB each (before base64). The same call also takes multipart/form-data, with the image as a front part of up to 20 MB, which suits large files:
The file is read optically, so it must be a real, legible image: a truncated or corrupt file answers 422 document_rejected and nothing is stored. In sandbox, use the sample passport; see Documents for every file rule.The response tells you where the person stands:
awaiting_submission means the person is ready and waiting for your submit; nothing else happens on its own. The investor’s status stays none.
Each upload stores a new document. If an upload answers 502 document_outcome_unknown, sending it again is safe; the extra copy is harmless.
Corrections
Until you submit, you can correct the person with PUT /investors/individual/{investorId}, also after the document is in. It replaces the whole record: send every field again, with the same email and externalInvestorId.
3. Submit
curl -X POST "$BASE/investors/$INVESTOR_ID/verification/submit" -H "Authorization: Bearer $ACCESS_TOKEN"
Submitting is the only way verification starts. Do it as soon as the document is in. Without an accepted identity document nothing is sent, and the answer is 422 business_rule_violation with details.investor.reason.code: documents-incomplete.A 200 does not always mean the investor was sent. Read status:
submitted: handed over. Go to step 4.
incomplete: it did not go through this time. Wait a few seconds and submit again.
Submit is safe to repeat: an investor already handed over comes back skipped.
Poll with the investorId until the status settles: every 30 seconds for the first few minutes, then every few minutes. A KYC webhook tells you when the status changes. What each status means, the cadence for production and how to handle manual-review are in Statuses.When verified arrives depends on your agreement with Securitize: on submit, or after screening. Poll until the status leaves processing either way.
After you submit
The person’s data and documents are locked: corrections and uploads answer 409 verification_in_review, and after the verdict 409 verification_already_settled. If Securitize needs anything more about the investor, it tells you.If you lose an id along the way, see Identifiers. For every error and what to do about it, see Errors.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Securitize Developers","description":"Guides and API reference for integrating with Securitize.","colors":{"primary":"#3C78F5","light":"#437DF5","dark":"#185FF3"},"logo":{"light":"https://mintcdn.com/securitize-60f32253/kBmHZumQn37v-BXB/logo/light.svg?fit=max\u0026auto=format\u0026n=kBmHZumQn37v-BXB\u0026q=85\u0026s=f572c1796218bd5afc1d09af804dbb88","dark":"https://mintcdn.com/securitize-60f32253/kBmHZumQn37v-BXB/logo/dark.svg?fit=max\u0026auto=format\u0026n=kBmHZumQn37v-BXB\u0026q=85\u0026s=6952527a72843cf449a05c68f0187ea7","href":"/"},"favicon":"https://mintcdn.com/securitize-60f32253/RoXGZGwUWxSErT0q/favicon.svg?fit=max\u0026auto=format\u0026n=RoXGZGwUWxSErT0q\u0026q=85\u0026s=4fec136809eb7d2ec87302ae429a63bd","api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","javascript","python"]}},"appearance":{"default":"dark"},"background":{"color":{"light":"#FFFFFF","dark":"#03060D"}},"navbar":{"links":[{"href":"https://securitize.io","label":"securitize.io"}],"primary":{"type":"button","label":"Contact","href":"mailto:support@securitize.io"}},"footer":{"links":[{"header":"Legal","items":[{"label":"Privacy policy","href":"https://securitize.io/disclosure/privacy-policy"},{"label":"Terms of service","href":"https://securitize.io/disclosure/terms-of-service"},{"label":"Disclosures","href":"https://securitize.io/disclosure-library"}]}]},"fonts":{"family":"Geist"},"contextual":{"options":["copy","view","download-spec","claude","chatgpt","cursor","vscode","mcp"],"display":"header"},"markdown":{"instructions":["SecId API: use the sandbox base URL https://partners-api.sandbox.securitize.io/investors/v1/onboarding-reliance unless the user explicitly provides production access. Authenticate with OAuth 2.0 client credentials: POST https://partners-api.sandbox.securitize.io/oauth2/token (form fields grant_type=client_credentials, client_id, client_secret, read from environment variables), cache the bearer token for its expires_in (7200 s) and send it as Authorization: Bearer on every call; never print or log the secret or the token.","Nothing is verified until POST /investors/{investorId}/verification/submit. An individual: create, upload one identity document, submit. A company: create, add its people as key parties (at least one with isBeneficialOwner: true), upload their documents, submit.","Branch on the HTTP status and the error `code`, never on `message`. A body without `code` comes from the gateway: on a 401 get a new token and send the request again; a 403 means the account is not enabled for this API.","SecId API addresses: send address.state only when that address's countryCode is US, as the 2-letter state code (NY); omit it for any other country, also when the user has a province or region. Otherwise the call answers 400 validation_error on address.state.","SecId API individuals in the US: taxId is the person's Social Security number, and it is checked against the name and residential address sent; send them as registered. A mismatch can move the investor to manual-review instead of verified. Sandbox does not run the check.","Creates are safe to repeat with the same body: after a timeout or a 502, send the identical create again. Document uploads are not: each call stores a new document, so only re-send a document after a 502.","Poll GET /investors/{investorId} about every 30 seconds, then back off; treat any status you do not recognise as not verified. In sandbox, the webhook investor.kyc.updated also announces every status change, and investor.suitability.updated / investor.dlt_test.updated every change of the suitability and DLT test verificationStatus: verify the signature, deduplicate on sourceEventId and confirm with the matching GET before acting. Token whitelisting is asynchronous too: poll GET /investors/{investorId}/wallets/whitelist until the status leaves processing.","SecId API tax forms: POST /investors/{investorId}/tax-forms takes multipart/form-data (parts file, formType, signatureDate); never base64 or JSON. Let the HTTP client set content-type with the boundary. At any point of the verification, before or after the investor is verified, only for investors you created (201), one PDF up to 10 MB per call; each upload replaces the form on file, so after a 502 send the same request again. A W-9 can instead go as JSON fields to POST /investors/{investorId}/tax-forms/w9 (TIN as 9 digits, SSN or EIN): it does not replace a form on file (409 tax_form_already_active, details.activeTaxForm), and it requires a certification object (certifiedAt, signatureName, subjectToBackupWithholding false, isUSPerson true, certificationTextVersion w9-sm-2026-10): the investor certifies in your flow on the text published at /secid-api/tax-forms#the-certification, shown without changes; subjectToBackupWithholding true answers 422 business_rule_violation (details.reason backup_withholding_not_supported). Unlike creates, a repeat after success answers 409 tax_form_already_active, not 201: when details.activeTaxForm.formType is W-9, treat it as on file.","Use synthetic test data in sandbox (@test.invalid emails, fresh ids each run). Never send more than one DLT test attempt per test investor unless the user asks: three failed attempts lock the test permanently.","The complete contract, with every field, response and error, is the OpenAPI file of the API reference; the Errors page says what to do for each code.","CET Underlying API: a WebSocket at wss://partners-rt-gw.sandbox.securitize.io/v1/market-maker/stream (TLS only; ws:// hangs with no answer). Sign hello, place_order, cancel_order and submit_crypto_funding with the user's Ed25519 key, read from an environment variable or secrets store; never print or log it. Sign timestamp + \".\" + type + \".\" + the exact payload string you send: serialise the payload once and embed that same string in the frame.","CET Underlying API: send a unique requestId of at most 32 characters (a UUID without hyphens) on every message and match replies on it; frames without a requestId are pushes. Every amount is a decimal string, never a JSON number; compare amounts as decimals. Branch on the error code, never on message.","CET Underlying API: an ack to place_order means taken, not filled. externalRef is the idempotency key; after an ack with status UNKNOWN or an UPSTREAM_UNAVAILABLE error, call get_order by externalRef before resending. Updates are delivered at most once: after any reconnect, read working orders back with get_order. Every order is placed by quantity. A buy must be a LIMIT order: quantity × limitPrice plus fees is held against your own available cash (get_cash_balance_v2), and a buy it does not cover, a MARKET buy or a notional order is refused (INVALID_ORDER). A sell must be placed by quantity, after its CETs reach the redemption wallet, or it is refused. mint_updated and burn_updated push mints and burns once they are on chain; after a gap, read them with get_mints and get_burns. The complete contract is the AsyncAPI file of the API reference.","Stocks API (Beta): documented ahead of its release through the partner gateway; paths, fields and errors can change. Base URL https://partners-api.sandbox.securitize.io/stocks/v1. Send x-api-key on every call and investorId on every call about an investor. Read the key from an environment variable; never print or log it, and never call the API from frontend code.","Stocks API: an investor can trade only once the SecId API shows them verified, with verified suitability (and a passed DLT test in the EEA), and once their wallet on the stock's chain is linked with their signature of the agreement message, signed verbatim. There is no whitelisting call: the first trade whitelists the wallet.","Stocks API: orders are fill or kill. GET /stocks/realtime-price, prepare within about 20 seconds (signedPrice), have the investor's wallet sign the returned transaction unchanged and sign-only (never send it), then submit it once with POST /stocks/execute-signed-transaction within 120 seconds. Amounts are raw base units as strings; USDC has 6 decimals. The outcome is on chain: follow transactionHash.","Stocks API: production access requires a UI audit by Securitize Compliance of the live screens: the disclosures and the market data shown, the NBBO included.","Corporate Actions API (Beta, 0.x): in development and subject to change; paths, fields, enumerations and event names can change before 1.0.0. Base URL https://partners-api.sandbox.securitize.io/corporate-actions/v1. Get a bearer token with OAuth 2.0 client credentials at POST https://partners-api.sandbox.securitize.io/oauth2/token (no scope, 2 hours), cache it, and send Authorization: Bearer on every call. Read the client id, secret and the webhook signing secret from environment variables; never print or log them, and never call the API from frontend code.","Corporate Actions API: webhooks arrive signed with the Standard Webhooks scheme under the svix-id, svix-timestamp and svix-signature headers (HMAC-SHA256 over id.timestamp.raw body, base64, v1 prefix; the secret is base64 after whsec_). Verify before parsing, reject a timestamp more than 5 minutes off, answer 2xx within 10 seconds. Delivery is at least once and can be out of order: deduplicate on sourceEventId, keep the highest version per object (objectId), order by sequence per stream.id, and replace the object with data (never merge).","Corporate Actions API: treat an unknown caType, reasonCode, eventType or enum value as informational, never as an error. A restriction ends only with ca.restriction.removed; expectedEnd is informational. marketStatus UNAVAILABLE means do not trade; the reason field carries a restriction reasonCode or a market reason such as PRE_MARKET. GET /tokens?status= filters by marketStatus (OPEN, CLOSED, UNAVAILABLE), not by the token's ACTIVE status.","Corporate Actions API: the event routes are at https://partners-api.sandbox.securitize.io/webhooks/v1 (not under /corporate-actions/v1) and cover every webhook family sent to the partner; filter with eventTypes=ca.* for corporate actions only. After an outage call POST /events/recover with since at the start of the outage (resends failed deliveries only), or page GET /events?since= (newest first, iterator paging, 90 days), then read state with GET /tokens/{tokenId}/status and GET /corporate-actions/{sourceCaId}. In sandbox, POST /sandbox/events with a scenario and one of your tokenIds publishes a scripted sequence at once; order the events by sequence, not by arrival.","Investor Activity API: base URL https://partners-api.sandbox.securitize.io/v1. Authentication is OAuth 2.0 client credentials only (no API key): POST https://partners-api.sandbox.securitize.io/oauth2/token (no scope, 2 hours), cache the token, and send Authorization: Bearer on every call. The token identifies the investor account; there is no investor id to pass. Read the client id, secret and the webhook signing secret from environment variables; never print or log them, and never call the API from frontend code.","Investor Activity API: every amount is an integer string in base units with a sibling decimals (human = amount / 10^decimals); parse with BigInt or a decimal type, never a float. Cash amounts (deposits, confirmations, payouts) are in the minor units of currencyId (1 = USD, decimals 2); token amounts (transactions, mintings, holdings) in the token's base units. Never add cash to tokens.","Investor Activity API: reconcile a subscription by grouping GET /deposits?tokenId= on tokenIssuanceId and matching the transaction in GET /transactions?tokenId= with the same tokenIssuanceId (null on a deposit means not issued yet; null on a transaction means not an issuance). Each issuance has a deposit movement (cash in) and a liquidation movement (that cash applied to the tokens) for the same amount: count the cash once, by direction=deposit, never by adding every movement. Page with offset and limit (max 100) until offset + meta.length reaches meta.total; there is no tokenIssuanceId filter. Reconcile a redemption by txHash (transfer, investor.redemption.pending, payout sourceTransaction) and by the redemption's data.id across pending, confirmed, payout.initiated and payout.completed.","Investor Activity API: webhooks arrive signed with the Standard Webhooks scheme under the svix-id, svix-timestamp and svix-signature headers (HMAC-SHA256 over id.timestamp.raw body, base64, v1 prefix; the secret is base64 after whsec_). Verify before parsing, reject a timestamp more than 5 minutes off, answer 2xx within 15 seconds. The body is {eventType, eventId, timestamp, data}: deduplicate on eventId (not svix-id), upsert by data.id, never move a record back to an earlier step, and treat an unknown eventType, processType or paymentMethod as informational. In webhooks a field with no value is absent; in endpoint answers it is null. After an outage page GET /webhook-events (newest first, iterator paging, optional eventType) back to the start of the outage.","SecId hosted onboarding: instead of the API, a partner can send an investor to https://stocks.securitize.io/partners?tokenId=\u003cstock token id>\u0026partnerUrl=\u003creturn URL> (tokenAddress may replace tokenId; partnerUrl must be an absolute https URL, URL-encoded). Securitize runs identity verification, the investment profile and the wallet there. Nothing is appended to partnerUrl on return: check the wallet on chain before trading (Beta on Solana)."]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"securitize-60f32253","hasAudioNarration":false,"actualSubdomain":"securitize-60f32253","customDomains":["developers.securitize.io"],"gitSource":{"type":"github","owner":"securitize-io","repo":"developer-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af600914477c283082672a1","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"APIs","count":162},{"language":"default","tag":"API reference","count":84},{"language":"default","tag":"SecId API","count":51},{"language":"default","tag":"Corporate Actions API","count":42},{"language":"default","tag":"Investor Activity API","count":28},{"language":"default","tag":"Guides","count":24},{"language":"default","tag":"Concepts","count":22},{"language":"default","tag":"Webhooks","count":21},{"language":"default","tag":"CET Underlying API","count":20},{"language":"default","tag":"Stocks API","count":20}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":true},"customCss":[{"filePath":"styles/design-system.css","href":"/_mintlify/custom/securitize-60f32253/756535d8fe740123/styles/design-system.css"},{"filePath":"styles/home.css","content":"html:has(.sz-home) div:has(>.nav-tabs){display:none!important}.sz-page.sz-home{padding:0;background:var(--ground)}.sz-home__wrap{max-width:1200px;margin-inline:auto;padding-inline:24px}.sz-page.sz-home .sz-hero{min-height:640px;display:flex;align-items:center;padding-block:72px}.sz-home .sz-hero>.sz-home__wrap{width:100%}.sz-page.sz-home .sz-hero::after{-webkit-mask-size:1800px auto;mask-size:1800px auto;-webkit-mask-position:50% 50%;mask-position:50% 50%}.sz-page.sz-home .sz-hero::before,.sz-page.sz-home .sz-hero::after{display:none}.sz-home__motion.mo-lines{position:absolute;inset:0;z-index:-1;aspect-ratio:auto}.sz-home__motion.mo-lines .lin-svg{inset:auto;left:50%;top:50%;width:1800px;height:1012.5px;transform:translate(-50%, -50%)}.sz-home__motion.mo-lines.is-on .ln{animation-timing-function:cubic-bezier(.2, 0, .2, 1)}.sz-home__motion.mo-lines.is-on .lb circle{animation-delay:calc(var(--t0) - 2.7s + var(--p) * var(--iv))}.sz-home__hero{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 520px);gap:64px;align-items:center;min-height:352px}.sz-home__intro{display:grid;grid-template-columns:minmax(0, 1fr);min-width:0;gap:20px;justify-items:start}.sz-home__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.sz-page.sz-home .sz-hero .sz-btn--secondary{background:color-mix(in srgb, var(--ground-alt) 70%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sz-page.sz-home .sz-hero .sz-btn--secondary:hover{background:var(--line)}.sz-home__agent{display:grid;grid-template-columns:minmax(0, 1fr);min-width:0;gap:12px;padding:28px;background:var(--surface);border:1px solid var(--line)}.sz-home__agent>div{margin:0!important}.sz-home__section{padding-block:100px 0}.sz-home .sz-box{min-height:220px}.sz-home .sz-grid-2>.sz-box.is-wide{grid-column:1 / -1}.sz-home__domains{display:flex;flex-wrap:wrap;gap:4px 20px;margin:4px 0 0;padding:0;list-style:none;font:var(--type-label);letter-spacing:var(--tracking-label);color:var(--ink-secondary)}.sz-home__footer{margin-top:100px;border-top:1px solid var(--line);padding-block:32px 48px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.sz-home__footer img{height:16px;width:auto}.sz-home__links{display:flex;flex-wrap:wrap;gap:8px 24px}.sz-home__footer a{font:var(--type-small);color:var(--ink-secondary);text-decoration:none;white-space:nowrap}.sz-home__footer a:hover{color:var(--ink)}.sz-home a.sz-box,.sz-home .sz-btn{text-decoration:none}@media (max-width: 960px){.sz-home__hero{grid-template-columns:minmax(0, 1fr);gap:40px}.sz-page.sz-home .sz-hero{min-height:0;padding-block:64px}.sz-home__section{padding-block:60px 0}}@media (max-width: 640px){.sz-home__motion.mo-lines{--slow: 1.6}.sz-home__motion.mo-lines .lin-svg{width:auto;height:100%;aspect-ratio:16 / 9}.sz-home__motion.mo-lines .ln{stroke:light-dark(rgb(3 6 13 / .14), rgb(255 255 255 / .16));stroke-width:calc(2px * var(--u, 1))}.sz-home__motion.mo-lines .lb .mu,.sz-home__motion.mo-lines .lb .mt{stroke-width:calc(2px * var(--u, 1))}.sz-home__motion.mo-lines .lb .mc{stroke-width:calc(2.4px * var(--u, 1))}.sz-home__motion.mo-lines.is-on .lb circle{animation-duration:calc(15s * var(--slow));animation-delay:calc((var(--t0) - 2.7s + var(--p) * var(--iv)) * var(--slow))}}.sz-home .code-group,.sz-home .code-group *{border-radius:0!important}.sz-home pre code{border:0;background:transparent;padding:0;font-size:inherit}"},{"filePath":"styles/motion-lines.css","content":".mo-lines{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/9;background:light-dark(var(--ground-alt),var(--ground));container-type:inline-size}.mo-lines::before{content:\"\";position:absolute;inset:0;z-index:0;background-image:var(--sz-grain);opacity:.35;mix-blend-mode:overlay;pointer-events:none}.mo-lines .lin-light{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 65% 70% at 50% 0%,light-dark(#FFFFFF,color-mix(in srgb,var(--accent-center) 30%,transparent)) 0%,light-dark(rgb(255 255 255 / .95),color-mix(in srgb,var(--accent-center) 15%,transparent)) 35%,light-dark(rgb(249 249 249 / .44),transparent) 70%,transparent 100%)}.mo-lines .lin-svg{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}.mo-lines .ln{fill:none;stroke:light-dark(rgb(3 6 13 / .11),rgb(255 255 255 / .13));stroke-width:calc(1.5px * var(--u,1));stroke-dasharray:var(--len) var(--len)}.mo-lines .lb .mu,.mo-lines .lb .mt{fill:none;stroke-width:calc(1.5px * var(--u,1))}.mo-lines .lb .mc{fill:none;stroke-width:calc(1.8px * var(--u,1));stroke:var(--accent-top);stroke:light-dark(var(--accent-center),color-mix(in srgb,var(--accent-top) 62%,var(--ink)))}.mo-lines .lb .mu{stroke:light-dark(var(--accent),var(--ink))}.mo-lines .lb .mt{stroke:var(--accent)}.mo-lines .lb circle{fill:url(#lin-rw)}.mo-lines .lb .bl circle{fill:url(#lin-ra)}.mo-lines .lin-da{stop-color:var(--accent)}.mo-lines.is-on .lb circle{offset-path:var(--op);offset-rotate:0deg;animation:lin-mv 15s calc(var(--t0) + var(--p) * var(--iv)) infinite both}@keyframes lin-mv{0%{offset-distance:-252px;animation-timing-function:cubic-bezier(.45,0,.55,1)}48%,100%{offset-distance:var(--d1)}}.mo-lines .u0{--p:-187;opacity:.0039}.mo-lines .u1{--p:-176;opacity:.0067}.mo-lines .u2{--p:-165;opacity:.0098}.mo-lines .u3{--p:-154;opacity:.0138}.mo-lines .u4{--p:-143;opacity:.018}.mo-lines .u5{--p:-132;opacity:.0231}.mo-lines .u6{--p:-121;opacity:.028}.mo-lines .u7{--p:-110;opacity:.034}.mo-lines .u8{--p:-99;opacity:.0395}.mo-lines .u9{--p:-88;opacity:.0461}.mo-lines .u10{--p:-77;opacity:.0517}.mo-lines .u11{--p:-66;opacity:.0586}.mo-lines .u12{--p:-55;opacity:.0642}.mo-lines .u13{--p:-44;opacity:.071}.mo-lines .u14{--p:-33;opacity:.0761}.mo-lines .u15{--p:-22;opacity:.0825}.mo-lines .u16{--p:-11;opacity:.0869}.mo-lines .u17{--p:0;opacity:.0925}.mo-lines .u18{--p:11;opacity:.0958}.mo-lines .u19{--p:22;opacity:.1004}.mo-lines .u20{--p:33;opacity:.1024}.mo-lines .u21{--p:44;opacity:.1057}.mo-lines .u22{--p:55;opacity:.1062}.mo-lines .u23{--p:66;opacity:.1081}.mo-lines .u24{--p:77;opacity:.1071}.mo-lines .u25{--p:88;opacity:.1074}.mo-lines .u26{--p:99;opacity:.1048}.mo-lines .u27{--p:110;opacity:.1037}.mo-lines .u28{--p:121;opacity:.0997}.mo-lines .u29{--p:132;opacity:.0971}.mo-lines .u30{--p:143;opacity:.092}.mo-lines .u31{--p:154;opacity:.0882}.mo-lines .u32{--p:165;opacity:.0822}.mo-lines .u33{--p:176;opacity:.0775}.mo-lines .u34{--p:187;opacity:.0708}.mo-lines .u35{--p:198;opacity:.0655}.mo-lines .u36{--p:209;opacity:.0585}.mo-lines .u37{--p:220;opacity:.0529}.mo-lines .u38{--p:231;opacity:.0461}.mo-lines .u39{--p:242;opacity:.0405}.mo-lines .u40{--p:253;opacity:.0341}.mo-lines .u41{--p:264;opacity:.0289}.mo-lines .u42{--p:275;opacity:.0232}.mo-lines .u43{--p:286;opacity:.0186}.mo-lines .u44{--p:297;opacity:.014}.mo-lines .u45{--p:308;opacity:.0103}.mo-lines .u46{--p:319;opacity:.0068}.mo-lines .u47{--p:330;opacity:.0042}.mo-lines .u48{--p:341;opacity:.0021}.mo-lines .t0{--p:6;opacity:.9308}.mo-lines .t1{--p:15;opacity:.7314}.mo-lines .t2{--p:24;opacity:.6924}.mo-lines .t3{--p:33;opacity:.6311}.mo-lines .t4{--p:42;opacity:.5854}.mo-lines .t5{--p:51;opacity:.5379}.mo-lines .t6{--p:60;opacity:.4996}.mo-lines .t7{--p:69;opacity:.4592}.mo-lines .t8{--p:78;opacity:.4269}.mo-lines .t9{--p:87;opacity:.3917}.mo-lines .t10{--p:96;opacity:.3641}.mo-lines .t11{--p:105;opacity:.3331}.mo-lines .t12{--p:114;opacity:.3092}.mo-lines .t13{--p:123;opacity:.2817}.mo-lines .t14{--p:132;opacity:.2608}.mo-lines .t15{--p:141;opacity:.2364}.mo-lines .t16{--p:150;opacity:.218}.mo-lines .t17{--p:159;opacity:.1964}.mo-lines .t18{--p:168;opacity:.1802}.mo-lines .t19{--p:177;opacity:.161}.mo-lines .t20{--p:186;opacity:.1466}.mo-lines .t21{--p:195;opacity:.1297}.mo-lines .t22{--p:204;opacity:.117}.mo-lines .t23{--p:213;opacity:.1021}.mo-lines .t24{--p:222;opacity:.0909}.mo-lines .t25{--p:231;opacity:.0781}.mo-lines .t26{--p:240;opacity:.0683}.mo-lines .t27{--p:249;opacity:.0572}.mo-lines .t28{--p:258;opacity:.0487}.mo-lines .t29{--p:267;opacity:.0395}.mo-lines .t30{--p:276;opacity:.0323}.mo-lines .t31{--p:285;opacity:.0248}.mo-lines .t32{--p:294;opacity:.0189}.mo-lines .t33{--p:303;opacity:.0132}.mo-lines .t34{--p:312;opacity:.0086}.mo-lines .t35{--p:321;opacity:.0047}.mo-lines .c0{--p:-1;opacity:.0456}.mo-lines .c1{--p:2.5;opacity:.9014}.mo-lines .c2{--p:6;opacity:.2984}.mo-lines .c3{--p:9.5;opacity:.3298}.mo-lines .c4{--p:13;opacity:.1635}.mo-lines .c5{--p:16.5;opacity:.1258}.mo-lines .c6{--p:20;opacity:.0587}.mo-lines .c7{--p:23.5;opacity:.0321}.mo-lines .c8{--p:27;opacity:.006}.mo-lines .g0{--p:6;opacity:.5}.mo-lines .g1{--p:14;opacity:.2}.mo-lines.is-on .ln{animation:lin-draw 2600ms cubic-bezier(.6,0,.3,1) calc(var(--i) * 140ms) both}.mo-lines:not(.is-on) .lb{display:none}.mo-lines.is-held *{animation-play-state:paused!important}@keyframes lin-draw{from{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.mo-lines *,.mo-lines::before,.mo-lines::after{animation:none!important;transition:none!important}}@media (prefers-reduced-motion: reduce){.mo-lines .lb{display:none}}"},{"filePath":"styles/site.css","content":"#page-title{font-weight:300;letter-spacing:-0.02em}#content-area h2:not([data-component-part],.sz-page *),#content-area h3:not([data-component-part],.sz-page *){font-weight:400;letter-spacing:-0.01em}.card{border-radius:0!important}#topbar-cta-button>a{padding:7px 18px;border:1px solid rgba(0, 0, 0, 0.3);border-radius:44px;font-weight:400;color:#03060D;transition:background-color 150ms ease-out}#topbar-cta-button>a:hover{background:#E3E4E8}#topbar-cta-button>a>span:first-child,#topbar-cta-button svg{display:none}#topbar-cta-button>a span{color:inherit}html.dark #topbar-cta-button>a{border-color:rgba(255, 255, 255, 0.3);color:#FFFFFF}html.dark #topbar-cta-button>a:hover{background:#25282E}.navbar-link>a{gap:6px;padding:7px 12px;border-radius:44px;font-family:\"Geist Mono\", ui-monospace, monospace;font-size:13px;font-weight:400;color:#5C606B;transition:background-color 150ms ease-out, color 150ms ease-out}.navbar-link>a:hover{background:#E3E4E8;color:#03060D}.navbar-link>a::after{content:\"\";width:0.85em;height:0.85em;background:currentColor;transform:rotate(-45deg);transition:transform 300ms cubic-bezier(.2,.8,.2,1);-webkit-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8H13M8.6 3.6L13 8L8.6 12.4' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E\") center / contain no-repeat;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8H13M8.6 3.6L13 8L8.6 12.4' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E\") center / contain no-repeat}.navbar-link>a:hover::after{transform:rotate(-45deg) translateX(2px)}html.dark .navbar-link>a{color:#9AA0B4}html.dark .navbar-link>a:hover{background:#25282E;color:#FFFFFF}@media (prefers-reduced-motion: reduce){.navbar-link>a::after{transition:none}}a[href^=\"https://app.getpostman.com/run-collection/\"]{color:#FF6C37}"},{"filePath":"styles/catalog.css","content":".sz-page.sz-catalog{padding:0;margin-block:16px 8px;background:transparent}.sz-catalog__grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:16px}.sz-catalog__grid>.sz-api:only-child{grid-column:1 / -1}.sz-catalog .sz-api{display:flex;flex-direction:column;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--line)}.sz-catalog .sz-api__head{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;border:0}.sz-catalog .sz-api__head .sz-icon{width:32px;height:32px;flex:none}.sz-catalog .sz-api__title{font:var(--type-h3);letter-spacing:var(--tracking-h3);color:var(--ink)}.sz-catalog .sz-api__head:hover .sz-api__title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.sz-catalog .sz-api__head .sz-status{margin-left:auto;--status: var(--accent)}.sz-catalog .sz-api__body{margin:0;font:var(--type-small);color:var(--ink-secondary)}.sz-catalog .sz-api__meta{display:flex;flex-wrap:wrap;gap:12px 32px;margin:0}.sz-catalog .sz-api__meta>div{display:grid;gap:2px}.sz-catalog .sz-api__key{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);color:var(--ink-secondary)}.sz-catalog .sz-api__value{font:var(--type-small);color:var(--ink)}.sz-catalog .sz-api__links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}.sz-catalog .sz-api__links a{font:var(--type-small);color:var(--ink-secondary);text-decoration:none;border:0;white-space:nowrap}.sz-catalog .sz-api__links a:hover{color:var(--ink)}.sz-catalog .sz-api__links a.is-primary{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:var(--ink)}.sz-catalog .sz-api__links a.is-primary:hover .sz-arrow{transform:translateX(calc(3px * var(--motion)))}@media (max-width: 767px){.sz-catalog__grid{grid-template-columns:minmax(0, 1fr)}}"}],"page":{"pagePath":"secid-api/onboard-an-individual","slug":"/secid-api/onboard-an-individual","pageMetadata":{"title":"Onboard an individual","description":"Create a person, send their identity document, submit, and read the verdict.","href":"/secid-api/onboard-an-individual"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a person, send their identity document, submit, and read the verdict.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`An individual is verified with the identity data you send and one identity document. Nothing is verified until you submit: the create and the document only prepare the investor.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`5`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`1. POST /investors/individual create the person → investorId`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`2. POST /investors/{investorId}/documents their identity document`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`3. POST /investors/{investorId}/verification/submit start verification`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`4. GET /investors/{investorId} poll for the verdict`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`The examples use `,_jsx(_components.code,{children:`$BASE`}),` for `,_jsx(_components.code,{children:`https://partners-api.sandbox.securitize.io/investors/v1/onboarding-reliance`}),` and `,_jsx(_components.code,{children:`$ACCESS_TOKEN`}),` for a bearer token (`,_jsx(_components.a,{href:`/secid-api/sandbox-and-auth#get-a-token`,children:`get one`}),`). Replace the identifiers in them (`,_jsx(_components.code,{children:`externalInvestorId`}),`, `,_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`taxId`}),`) with fresh values of your own: the examples already exist in sandbox.`]}),`\n`,_jsx(Heading,{level:`2`,id:`1-create-the-person`,children:`1. Create the person`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`13`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/investors/individual\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"content-type: application/json\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"externalInvestorId\": \"cust-2001\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"investorType\": \"individual\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"email\": \"ana.sample@test.invalid\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"firstName\": \"Test_Jane\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"lastName\": \"Sample\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"dateOfBirth\": \"1990-04-12\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"birthCountry\": \"US\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"taxId\": \"571-44-7822\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"taxCountry\": \"US\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"phone\": { \"code\": \"1\", \"number\": \"5550100001\" },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"address\": { \"street\": \"Test Street\", \"houseNumber\": \"1\", \"city\": \"New York\", \"state\": \"NY\", \"postalCode\": \"10001\", \"countryCode\": \"US\" }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Store the `,_jsx(_components.code,{children:`investorId`}),` from the response. Things that commonly go wrong:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`taxId`}),` and `,_jsx(_components.code,{children:`taxCountry`}),` are required`]}),`: together they identify the person. Placeholders such as `,_jsx(_components.code,{children:`000000000`}),`, `,_jsx(_components.code,{children:`123456789`}),` or `,_jsx(_components.code,{children:`TEST`}),` are refused, with or without separators (`,_jsx(_components.code,{children:`123-45-6789`}),` too).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`For a US person, send the Social Security number with the name and residential address it is registered to.`}),` Securitize checks that they match, and a mismatch can send the investor to `,_jsx(_components.code,{children:`manual-review`}),` (see `,_jsx(_components.a,{href:`/secid-api/statuses#investor-status`,children:`Statuses`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`email`}),` is unique across all of Securitize`]}),`, not just your account, and cannot be changed after the create. Use the person’s own address.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`address.state`}),` is for US addresses only`]}),`: the 2-letter state code (`,_jsx(_components.code,{children:`NY`}),`). Leave it out for any other country, even if your form collects a province or region; otherwise the create answers `,_jsx(_components.code,{children:`400 validation_error`}),` on `,_jsx(_components.code,{children:`address.state`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Branch on the status code.`}),` `,_jsx(_components.code,{children:`201`}),` is a new investor. `,_jsx(_components.code,{children:`200`}),` means the person is already registered with Securitize and another party leads the verification: you get `,_jsx(_components.a,{href:`/secid-api/identifiers#when-the-investor-already-exists`,children:`limited access`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Repeating the same create is safe.`}),` If a create timed out or answered `,_jsx(_components.code,{children:`502`}),`, send exactly the same body again: you get `,_jsx(_components.code,{children:`201`}),` with the same `,_jsx(_components.code,{children:`investorId`}),`. The same `,_jsx(_components.code,{children:`externalInvestorId`}),` with different data answers `,_jsx(_components.code,{children:`409 external_investor_id_conflict`}),`, with the `,_jsx(_components.code,{children:`investorId`}),` in `,_jsx(_components.code,{children:`details`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-send-the-identity-document`,children:`2. Send the identity document`}),`\n`,_jsx(_components.p,{children:`One identity document per person, with all of its files in the same call:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.th,{children:`Files`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`passport`})}),_jsxs(_components.td,{children:[`1 file, `,_jsx(_components.code,{children:`side: \"front\"`})]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`driving-licence`}),`, `,_jsx(_components.code,{children:`national-identity-card`}),`, `,_jsx(_components.code,{children:`residence-permit`})]}),_jsxs(_components.td,{children:[`2 files, `,_jsx(_components.code,{children:`front`}),` and `,_jsx(_components.code,{children:`back`})]})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/investors/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INVESTOR_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/documents\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"content-type: application/json\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"passport\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"documentNumber\": \"P1234567\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expiresAt\": \"2032-01-01\",`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"files\": [ { \"side\": \"front\", \"mime\": \"image/png\", \"content\": \"'\"$(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`base64`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` passport.png)\"'\" } ]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Files are JPEG or PNG, base64-encoded (a `,_jsx(_components.code,{children:`data:`}),` URL prefix is accepted), at most 10 MB each (before base64). The same call also takes `,_jsx(_components.code,{children:`multipart/form-data`}),`, with the image as a `,_jsx(_components.code,{children:`front`}),` part of up to 20 MB, which suits large files:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/investors/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INVESTOR_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/documents\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` type=passport`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` documentNumber=P-IND1-0000`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` expiresAt=2032-01-01`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` front=@passport.png`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The file is read optically, so it must be a real, legible image: a truncated or corrupt file answers `,_jsx(_components.code,{children:`422 document_rejected`}),` and nothing is stored. In sandbox, use the `,_jsx(_components.a,{href:`/secid-api/fixtures/passport.png`,children:`sample passport`}),`; see `,_jsx(_components.a,{href:`/secid-api/documents`,children:`Documents`}),` for every file rule.`]}),`\n`,_jsx(_components.p,{children:`The response tells you where the person stands:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"documents\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [ { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"6ace7461ab21fd6924a19c09\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"passport\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"documentNumber\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"P1234567\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"expiresAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2032-01-01\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"uploadedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-13T18:11:45.540Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"side\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"front\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } ],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"verification\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"awaiting_submission\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"missing\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [] }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`awaiting_submission`}),` means the person is ready and waiting for your submit; nothing else happens on its own. The investor’s `,_jsx(_components.code,{children:`status`}),` stays `,_jsx(_components.code,{children:`none`}),`.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Each upload stores a new document. If an upload answers `,_jsx(_components.code,{children:`502 document_outcome_unknown`}),`, sending it again is safe; the extra copy is harmless.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`corrections`,children:`Corrections`}),`\n`,_jsxs(_components.p,{children:[`Until you submit, you can correct the person with `,_jsx(_components.code,{children:`PUT /investors/individual/{investorId}`}),`, also after the document is in. It replaces the whole record: send every field again, with the same `,_jsx(_components.code,{children:`email`}),` and `,_jsx(_components.code,{children:`externalInvestorId`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`3-submit`,children:`3. Submit`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/investors/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INVESTOR_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/verification/submit\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Submitting is the only way verification starts. Do it as soon as the document is in. Without an accepted identity document nothing is sent, and the answer is `,_jsx(_components.code,{children:`422 business_rule_violation`}),` with `,_jsx(_components.code,{children:`details.investor.reason.code: documents-incomplete`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`200`}),` does not always mean the investor was sent. Read `,_jsx(_components.code,{children:`status`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`submitted`}),`: handed over. Go to step 4.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`incomplete`}),`: it did not go through this time. Wait a few seconds and submit again.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Submit is safe to repeat: an investor already handed over comes back `,_jsx(_components.code,{children:`skipped`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-poll-for-the-verdict`,children:`4. Poll for the verdict`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$BASE`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/investors/`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$INVESTOR_ID`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ACCESS_TOKEN`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Poll with the `,_jsx(_components.code,{children:`investorId`}),` until the status settles: every 30 seconds for the first few minutes, then every few minutes. A `,_jsx(_components.a,{href:`/secid-api/kyc-webhooks`,children:`KYC webhook`}),` tells you when the status changes. What each status means, the cadence for production and how to handle `,_jsx(_components.code,{children:`manual-review`}),` are in `,_jsx(_components.a,{href:`/secid-api/statuses`,children:`Statuses`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`When `,_jsx(_components.code,{children:`verified`}),` arrives depends on your agreement with Securitize`]}),`: on submit, or after screening. Poll until the status leaves `,_jsx(_components.code,{children:`processing`}),` either way.`]}),`\n`,_jsx(Heading,{level:`2`,id:`after-you-submit`,children:`After you submit`}),`\n`,_jsxs(_components.p,{children:[`The person’s data and documents are locked: corrections and uploads answer `,_jsx(_components.code,{children:`409 verification_in_review`}),`, and after the verdict `,_jsx(_components.code,{children:`409 verification_already_settled`}),`. If Securitize needs anything more about the investor, it tells you.`]}),`\n`,_jsxs(_components.p,{children:[`If you lose an id along the way, see `,_jsx(_components.a,{href:`/secid-api/identifiers#recovering-a-lost-id`,children:`Identifiers`}),`. For every error and what to do about it, see `,_jsx(_components.a,{href:`/secid-api/errors`,children:`Errors`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Onboard an individual","description":"Create a person, send their identity document, submit, and read the verdict.","href":"/secid-api/onboard-an-individual"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Create the person","slug":"1-create-the-person","depth":2,"children":[]},{"title":"2. Send the identity document","slug":"2-send-the-identity-document","depth":2,"children":[{"title":"Corrections","slug":"corrections","depth":3,"children":[]}]},{"title":"3. Submit","slug":"3-submit","depth":2,"children":[]},{"title":"4. Poll for the verdict","slug":"4-poll-for-the-verdict","depth":2,"children":[]},{"title":"After you submit","slug":"after-you-submit","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"securitize-60f32253","siteName":"Securitize Developers","title":"Onboard an individual - Securitize Developers","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T13:20:42.314Z","originalFileLocation":"secid-api/onboard-an-individual.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a person, send their identity document, submit, and read the verdict.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Securitize Developers\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Onboard an individual - Securitize Developers\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a person, send their identity document, submit, and read the verdict.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Securitize Developers\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.securitize.io/secid-api/onboard-an-individual\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://securitize-60f32253.mintlify.site/_mintlify/api/og/v2?division=Guides\u0026amp;title=Onboard+an+individual\u0026amp;description=Create+a+person%2C+send+their+identity+document%2C+submit%2C+and+read+the+verdict.\u0026amp;theme=0b9e7db110b74a2e13604d70\u0026amp;signature=0f78c7a77c68f2817201f42ff63170ed1619bff10d43c512c8e9d63c4d1d6bf5\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Onboard an individual - Securitize Developers\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a person, send their identity document, submit, and read the verdict.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://securitize-60f32253.mintlify.site/_mintlify/api/og/v2?division=Guides\u0026amp;title=Onboard+an+individual\u0026amp;description=Create+a+person%2C+send+their+identity+document%2C+submit%2C+and+read+the+verdict.\u0026amp;theme=0b9e7db110b74a2e13604d70\u0026amp;signature=0f78c7a77c68f2817201f42ff63170ed1619bff10d43c512c8e9d63c4d1d6bf5\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/securitize-60f32253/kr9tDOYpJSYmhuYr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Securitize Developers\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3C78F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.securitize.io/secid-api/onboard-an-individual\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/secid-api/onboard-an-individual.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.securitize.io/#organization\",\"name\":\"Securitize Developers\",\"url\":\"https://developers.securitize.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/securitize-60f32253/kBmHZumQn37v-BXB/logo/light.svg?fit=max\u0026auto=format\u0026n=kBmHZumQn37v-BXB\u0026q=85\u0026s=f572c1796218bd5afc1d09af804dbb88\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.securitize.io#website\",\"name\":\"Securitize Developers\",\"url\":\"https://developers.securitize.io\",\"publisher\":{\"@id\":\"https://developers.securitize.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.securitize.io/secid-api/onboard-an-individual#webpage\",\"url\":\"https://developers.securitize.io/secid-api/onboard-an-individual\",\"name\":\"Onboard an individual\",\"description\":\"Create a person, send their identity document, submit, and read the verdict.\",\"dateModified\":\"2026-11-12T13:20:42.314Z\",\"isPartOf\":{\"@id\":\"https://developers.securitize.io#website\"},\"breadcrumb\":{\"@id\":\"https://developers.securitize.io/secid-api/onboard-an-individual#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.securitize.io/secid-api/onboard-an-individual#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://developers.securitize.io/secid-api/hosted-onboarding\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Onboard an individual\",\"item\":\"https://developers.securitize.io/secid-api/onboard-an-individual\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.securitize.io/secid-api/onboard-an-individual#article\",\"headline\":\"Onboard an individual\",\"name\":\"Onboard an individual\",\"description\":\"Create a person, send their identity document, submit, and read the verdict.\",\"url\":\"https://developers.securitize.io/secid-api/onboard-an-individual\",\"mainEntityOfPage\":{\"@id\":\"https://developers.securitize.io/secid-api/onboard-an-individual#webpage\"},\"dateModified\":\"2026-11-12T13:20:42.314Z\",\"publisher\":{\"@id\":\"https://developers.securitize.io/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.securitize.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Securitize Developers\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Securitize Developers\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/secid-api/onboard-an-individual.md","siteName":"Securitize Developers","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"APIs","icon":"code","dropdowns":[{"dropdown":"All APIs","icon":"grid-2","description":"Every API, by domain","pages":[{"title":"APIs","href":"/apis"},{"title":"Webhooks","href":"/webhooks"},{"title":"Replay and recover","href":"/webhook-events"}]},{"dropdown":"SecId API","icon":"id-card","description":"Onboard investors you have already verified","groups":[{"group":"Get started","pages":[{"title":"SecId API","href":"/secid-api/overview"},{"title":"Sandbox and authentication","href":"/secid-api/sandbox-and-auth"},{"title":"Build with AI","url":"/build-with-ai","href":"/secid-api/build-with-ai-agents"},{"title":"Postman collection","icon":"https://mintlify.s3.us-west-1.amazonaws.com/securitize-60f32253/images/postman.svg","url":"https://app.getpostman.com/run-collection/23021757-1a8e8c90-1897-4d69-ab63-c50e314067f2?action=collection%2Ffork\u0026source=rip_markdown\u0026collection-url=entityId%3D23021757-1a8e8c90-1897-4d69-ab63-c50e314067f2%26entityType%3Dcollection%26workspaceId%3D683a5f12-b990-458c-97f4-f9fb4d4dae76#?env%5BSecId%20API%20Sandbox%5D=W3sia2V5IjoiYmFzZVVybCIsInZhbHVlIjoiaHR0cHM6Ly9wYXJ0bmVycy1hcGkuc2FuZGJveC5zZWN1cml0aXplLmlvL2ludmVzdG9ycy92MS9vbmJvYXJkaW5nLXJlbGlhbmNlIiwidHlwZSI6ImRlZmF1bHQiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6InRva2VuVXJsIiwidmFsdWUiOiJodHRwczovL3BhcnRuZXJzLWFwaS5zYW5kYm94LnNlY3VyaXRpemUuaW8vb2F1dGgyL3Rva2VuIiwidHlwZSI6ImRlZmF1bHQiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImNsaWVudElkIiwidmFsdWUiOiIiLCJ0eXBlIjoiZGVmYXVsdCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiY2xpZW50U2VjcmV0IiwidmFsdWUiOiIiLCJ0eXBlIjoic2VjcmV0IiwiZW5hYmxlZCI6dHJ1ZX1d","href":"/secid-api/postman-collection"},{"title":"Go-live checklist","href":"/secid-api/go-live-checklist"}]},{"group":"Guides","pages":[{"title":"Hosted onboarding","description":"Send investors to a page Securitize hosts with only the onboarding steps: identity, investment profile and wallet. They come back to your site when done.","href":"/secid-api/hosted-onboarding"},{"title":"Onboard an individual","href":"/secid-api/onboard-an-individual"},{"title":"Onboard a company","description":"Create a company, declare the people behind it, send their documents, submit, and read the verdict.","href":"/secid-api/onboard-a-company"},{"title":"Wallets","href":"/secid-api/wallets"},{"title":"Whitelist a wallet for a token","href":"/secid-api/whitelist-a-wallet"},{"title":"Suitability and the DLT test","href":"/secid-api/suitability-and-dlt-test"},{"title":"Send a tax form","href":"/secid-api/tax-forms"},{"title":"Webhooks","href":"/webhooks"},{"title":"KYC webhooks","href":"/secid-api/kyc-webhooks"},{"title":"Suitability webhooks","href":"/secid-api/suitability-webhooks"},{"title":"Replay and recover","href":"/webhook-events"}]},{"group":"Concepts","pages":[{"title":"Statuses","href":"/secid-api/statuses"},{"title":"Identifiers","href":"/secid-api/identifiers"},{"title":"Documents","href":"/secid-api/documents"},{"title":"Errors","href":"/secid-api/errors"}]},{"group":"Help","pages":[{"title":"FAQ and troubleshooting","href":"/secid-api/faq"},{"title":"Glossary","href":"/secid-api/glossary"},{"title":"Changelog","href":"/secid-api/changelog"}]},{"group":"API reference","pages":[{"group":"Authentication","pages":[{"title":"Get an access token","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /oauth2/token","href":"/api-reference/authentication/get-an-access-token"}]},{"group":"Individuals","pages":[{"title":"Create an individual investor","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/individual","href":"/api-reference/individuals/create-an-individual-investor"},{"title":"Correct an individual investor","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml put /investors/individual/{investorId}","href":"/api-reference/individuals/correct-an-individual-investor"}]},{"group":"Entities","pages":[{"title":"Create an entity investor","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/entity","href":"/api-reference/entities/create-an-entity-investor"},{"title":"Correct an entity investor","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml put /investors/entity/{investorId}","href":"/api-reference/entities/correct-an-entity-investor"}]},{"group":"Key parties","pages":[{"title":"Add a person key party","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/key-parties/individual","href":"/api-reference/key-parties/add-a-person-key-party"},{"title":"Correct a person key party","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml put /investors/{investorId}/key-parties/individual/{keyPartyId}","href":"/api-reference/key-parties/correct-a-person-key-party"},{"title":"Add a company key party","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/key-parties/entity","href":"/api-reference/key-parties/add-a-company-key-party"},{"title":"Correct a company key party","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml put /investors/{investorId}/key-parties/entity/{keyPartyId}","href":"/api-reference/key-parties/correct-a-company-key-party"},{"title":"List an entity's key parties","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}/key-parties","href":"/api-reference/key-parties/list-an-entitys-key-parties"}]},{"group":"Documents","pages":[{"title":"Add a document to a key party","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/key-parties/{keyPartyId}/documents","href":"/api-reference/documents/add-a-document-to-a-key-party"},{"title":"Add a document to an investor","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/documents","href":"/api-reference/documents/add-a-document-to-an-investor"}]},{"group":"Verification","pages":[{"title":"Submit an investor for verification","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/verification/submit","href":"/api-reference/verification/submit-an-investor-for-verification"}]},{"group":"Lookup","pages":[{"title":"Get an investor","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}","href":"/api-reference/lookup/get-an-investor"},{"title":"List your investors","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors","href":"/api-reference/lookup/list-your-investors"}]},{"group":"Wallets","pages":[{"title":"List the investor's wallets you registered","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}/wallets","href":"/api-reference/wallets/list-the-investors-wallets-you-registered"},{"title":"Register a wallet","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/wallets","href":"/api-reference/wallets/register-a-wallet"}]},{"group":"Suitability and DLT test","pages":[{"title":"Read the investor's suitability","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}/suitability","href":"/api-reference/suitability-and-dlt-test/read-the-investors-suitability"},{"title":"Send the investor's suitability","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/suitability","href":"/api-reference/suitability-and-dlt-test/send-the-investors-suitability"},{"title":"Read the investor's compact suitability","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}/suitability/compact","href":"/api-reference/suitability-and-dlt-test/read-the-investors-compact-suitability"},{"title":"Send the investor's compact suitability","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/suitability/compact","href":"/api-reference/suitability-and-dlt-test/send-the-investors-compact-suitability"},{"title":"Read the investor's DLT test","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}/dlt-test","href":"/api-reference/suitability-and-dlt-test/read-the-investors-dlt-test"},{"title":"Send an attempt at the DLT test","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/dlt-test","href":"/api-reference/suitability-and-dlt-test/send-an-attempt-at-the-dlt-test"}]},{"group":"Token whitelisting","pages":[{"title":"List the investor's whitelisted wallets","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml get /investors/{investorId}/wallets/whitelist","href":"/api-reference/token-whitelisting/list-the-investors-whitelisted-wallets"},{"title":"Whitelist a wallet on a token","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/wallets/whitelist","href":"/api-reference/token-whitelisting/whitelist-a-wallet-on-a-token"}]},{"group":"Tax forms","pages":[{"title":"Upload an investor's signed tax form","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/tax-forms","href":"/api-reference/tax-forms/upload-an-investors-signed-tax-form"},{"title":"Send an investor's W-9 as data","deprecated":null,"version":null,"openapi":"/secid-api/openapi.yaml post /investors/{investorId}/tax-forms/w9","href":"/api-reference/tax-forms/send-an-investors-w-9-as-data"}]},{"group":"Webhooks","pages":[{"title":"An investors status changed","version":null,"deprecated":null,"openapi":"/secid-api/openapi.yaml webhook investor.kyc.updated","href":"/api-reference/webhooks/an-investors-status-changed"},{"title":"An investors suitability verdict changed","version":null,"deprecated":null,"openapi":"/secid-api/openapi.yaml webhook investor.suitability.updated","href":"/api-reference/webhooks/an-investors-suitability-verdict-changed"},{"title":"An investors dlt test verdict changed","version":null,"deprecated":null,"openapi":"/secid-api/openapi.yaml webhook investor.dlt_test.updated","href":"/api-reference/webhooks/an-investors-dlt-test-verdict-changed"}]}]}]},{"dropdown":"Stocks API","icon":"chart-line","description":"Beta · Offer tokenized US-listed stocks","groups":[{"group":"Get started","tag":"Beta","pages":[{"title":"Stocks API","href":"/stocks-api/overview"},{"title":"Sandbox and authentication","href":"/stocks-api/sandbox-and-auth"},{"title":"Go-live checklist","href":"/stocks-api/go-live-checklist"}]},{"group":"Guides","tag":"Beta","pages":[{"title":"Prepare an investor to trade","href":"/stocks-api/prepare-an-investor"},{"title":"Trade a stock","href":"/stocks-api/trade"},{"title":"Prices and market data","href":"/stocks-api/prices-and-market-data"}]},{"group":"Concepts","tag":"Beta","pages":[{"title":"Market status","href":"/stocks-api/market-status"},{"title":"Amounts and assets","href":"/stocks-api/amounts-and-assets"},{"title":"Errors","href":"/stocks-api/errors"}]},{"group":"Help","tag":"Beta","pages":[{"title":"Glossary","href":"/stocks-api/glossary"},{"title":"Changelog","href":"/stocks-api/changelog"}]},{"group":"API reference","tag":"Beta","pages":[{"group":"Prices","pages":[{"title":"Get a delayed price","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml get /stocks/price","href":"/stocks-api/api-reference/prices/get-a-delayed-price"},{"title":"Get market statistics","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml get /stocks/market-statistics","href":"/stocks-api/api-reference/prices/get-market-statistics"},{"title":"Get a real-time price to trade against","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml get /stocks/realtime-price","href":"/stocks-api/api-reference/prices/get-a-real-time-price-to-trade-against"}]},{"group":"Wallets","pages":[{"title":"Check whether a wallet can be linked","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml post /wallets/{address}/verification-status","href":"/stocks-api/api-reference/wallets/check-whether-a-wallet-can-be-linked"},{"title":"Get the agreement message to sign","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml post /wallets/{address}/prepare-verification","href":"/stocks-api/api-reference/wallets/get-the-agreement-message-to-sign"},{"title":"Link a wallet with the investor's signature","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml post /wallets","href":"/stocks-api/api-reference/wallets/link-a-wallet-with-the-investors-signature"}]},{"group":"Trading","pages":[{"title":"Prepare a buy","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml post /stocks/on-ramp/{contractAddress}/prepare-execute-transaction","href":"/stocks-api/api-reference/trading/prepare-a-buy"},{"title":"Prepare a sell","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml post /stocks/off-ramp/{contractAddress}/prepare-execute-transaction","href":"/stocks-api/api-reference/trading/prepare-a-sell"},{"title":"Submit the signed order","deprecated":null,"version":null,"openapi":"/stocks-api/openapi.yaml post /stocks/execute-signed-transaction","href":"/stocks-api/api-reference/trading/submit-the-signed-order"}]}]}]},{"dropdown":"CET Underlying API","icon":"arrow-right-arrow-left","description":"Trade the shares underlying CETs over a WebSocket","groups":[{"group":"Get started","pages":[{"title":"CET Underlying API","href":"/cet-underlying-api/overview"},{"title":"Sandbox and authentication","href":"/cet-underlying-api/sandbox-and-auth"},{"title":"Go-live checklist","href":"/cet-underlying-api/go-live-checklist"}]},{"group":"Sandbox only","pages":[{"title":"Sandbox funding","href":"/cet-underlying-api/sandbox-funding"},{"title":"Sandbox only","asyncapi":"cet-underlying-api/asyncapi.yaml sandbox","href":"/cet-underlying-api/reference/sandbox"}]},{"group":"Guides","pages":[{"title":"Buy shares and receive CETs","href":"/cet-underlying-api/buy-shares"},{"title":"Sell shares and redeem CETs","href":"/cet-underlying-api/sell-shares"},{"title":"Track, cancel and reconcile orders","href":"/cet-underlying-api/track-orders"},{"title":"Cash","href":"/cet-underlying-api/positions-and-cash"}]},{"group":"Concepts","pages":[{"title":"Messages","href":"/cet-underlying-api/messages"},{"title":"Orders and statuses","href":"/cet-underlying-api/orders-and-statuses"},{"title":"Mints and burns","href":"/cet-underlying-api/mints-and-burns"},{"title":"Errors","href":"/cet-underlying-api/errors"}]},{"group":"Help","pages":[{"title":"Glossary","href":"/cet-underlying-api/glossary"},{"title":"Changelog","href":"/cet-underlying-api/changelog"}]},{"group":"API reference","pages":[{"title":"Session","asyncapi":"cet-underlying-api/asyncapi.yaml session","href":"/cet-underlying-api/reference/session"},{"title":"Orders","asyncapi":"cet-underlying-api/asyncapi.yaml orders","href":"/cet-underlying-api/reference/orders"},{"title":"Mints and burns","asyncapi":"cet-underlying-api/asyncapi.yaml mints-and-burns","href":"/cet-underlying-api/reference/mints-and-burns"},{"title":"Cash","asyncapi":"cet-underlying-api/asyncapi.yaml positions-and-cash","href":"/cet-underlying-api/reference/positions-and-cash"},{"title":"Reads over HTTP","href":"/cet-underlying-api/reference/http-reads"}]}]},{"dropdown":"Corporate Actions API","icon":"calendar-check","description":"Beta · Corporate actions and token status, by webhook","groups":[{"group":"Get started","tag":"Beta","pages":[{"title":"Corporate Actions API","href":"/corporate-actions-api/overview"},{"title":"Sandbox and authentication","href":"/corporate-actions-api/sandbox-and-auth"},{"title":"Test in sandbox","href":"/corporate-actions-api/test-in-sandbox"},{"title":"Go-live checklist","href":"/corporate-actions-api/go-live-checklist"}]},{"group":"Guides","tag":"Beta","pages":[{"title":"Webhooks","href":"/webhooks"},{"title":"Receive webhooks","href":"/corporate-actions-api/receive-webhooks"},{"title":"Replay and recover","href":"/webhook-events"},{"title":"Track a corporate action","href":"/corporate-actions-api/track-a-corporate-action"},{"title":"Track token status","href":"/corporate-actions-api/track-token-status"}]},{"group":"Concepts","tag":"Beta","pages":[{"title":"Identifiers","href":"/corporate-actions-api/identifiers"},{"title":"Events","href":"/corporate-actions-api/events"},{"title":"Corporate actions","href":"/corporate-actions-api/corporate-actions"},{"title":"Restrictions and market status","href":"/corporate-actions-api/restrictions"},{"title":"Errors","href":"/corporate-actions-api/errors"},{"title":"Versioning","href":"/corporate-actions-api/versioning"}]},{"group":"Help","tag":"Beta","pages":[{"title":"Glossary","href":"/corporate-actions-api/glossary"},{"title":"Changelog","href":"/corporate-actions-api/changelog"}]},{"group":"API reference","tag":"Beta","pages":[{"group":"Authentication","pages":[{"title":"Get an access token","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml post /oauth2/token","href":"/corporate-actions-api/api-reference/authentication/get-an-access-token"}]},{"group":"Assets","pages":[{"title":"List your assets","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /assets","href":"/corporate-actions-api/api-reference/assets/list-your-assets"},{"title":"Get an asset","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /assets/{assetId}","href":"/corporate-actions-api/api-reference/assets/get-an-asset"},{"title":"Get the restrictions on an asset","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /assets/{assetId}/status","href":"/corporate-actions-api/api-reference/assets/get-the-restrictions-on-an-asset"}]},{"group":"Tokens","pages":[{"title":"List your tokens","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /tokens","href":"/corporate-actions-api/api-reference/tokens/list-your-tokens"},{"title":"Get a token","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /tokens/{tokenId}","href":"/corporate-actions-api/api-reference/tokens/get-a-token"},{"title":"Get the effective market status of a token","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /tokens/{tokenId}/status","href":"/corporate-actions-api/api-reference/tokens/get-the-effective-market-status-of-a-token"},{"title":"List the corporate actions on a token","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /tokens/{tokenId}/corporate-actions","href":"/corporate-actions-api/api-reference/tokens/list-the-corporate-actions-on-a-token"}]},{"group":"Corporate actions","pages":[{"title":"Get a corporate action","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /corporate-actions/{sourceCaId}","href":"/corporate-actions-api/api-reference/corporate-actions/get-a-corporate-action"},{"title":"Get one version of a corporate action","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /corporate-actions/{sourceCaId}/versions/{version}","href":"/corporate-actions-api/api-reference/corporate-actions/get-one-version-of-a-corporate-action"}]},{"group":"Events","pages":[{"title":"List the webhooks sent to you","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /events","href":"/corporate-actions-api/api-reference/events/list-the-webhooks-sent-to-you"},{"title":"Get one webhook by its event id","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml get /events/{eventId}","href":"/corporate-actions-api/api-reference/events/get-one-webhook-by-its-event-id"},{"title":"Resend the webhooks that failed in a time window","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml post /events/recover","href":"/corporate-actions-api/api-reference/events/resend-the-webhooks-that-failed-in-a-time-window"}]},{"group":"Sandbox","pages":[{"title":"Trigger a test scenario","deprecated":null,"version":null,"openapi":"/corporate-actions-api/openapi.yaml post /sandbox/events","href":"/corporate-actions-api/api-reference/sandbox/trigger-a-test-scenario"}]},{"group":"Webhooks","pages":[{"title":"A corporate action was announced","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.created","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-was-announced"},{"title":"A corporate action was amended","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.updated","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-was-amended"},{"title":"A corporate action was corrected","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.corrected","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-was-corrected"},{"title":"A corporate action was postponed","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.postponed","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-was-postponed"},{"title":"A corporate action was cancelled","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.cancelled","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-was-cancelled"},{"title":"A corporate action moved to another lifecycle status","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.status_changed","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-moved-to-another-lifecycle-status"},{"title":"A corporate action was completed","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.action.completed","href":"/corporate-actions-api/api-reference/webhooks/a-corporate-action-was-completed"},{"title":"A trading restriction started","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.restriction.added","href":"/corporate-actions-api/api-reference/webhooks/a-trading-restriction-started"},{"title":"A trading restriction changed","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.restriction.updated","href":"/corporate-actions-api/api-reference/webhooks/a-trading-restriction-changed"},{"title":"A trading restriction ended","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.restriction.removed","href":"/corporate-actions-api/api-reference/webhooks/a-trading-restriction-ended"},{"title":"Token reference data changed","version":null,"deprecated":null,"openapi":"/corporate-actions-api/openapi.yaml webhook ca.token.updated","href":"/corporate-actions-api/api-reference/webhooks/token-reference-data-changed"}]}]}]},{"dropdown":"Investor Activity API","icon":"arrow-right-arrow-left","description":"Your activity in tokenized funds, by webhook and on request","groups":[{"group":"Get started","pages":[{"title":"Investor Activity API","href":"/investor-activity-api/overview"},{"title":"Sandbox and authentication","href":"/investor-activity-api/sandbox-and-auth"},{"title":"Go-live checklist","href":"/investor-activity-api/go-live-checklist"}]},{"group":"Guides","pages":[{"title":"Receive webhooks","href":"/investor-activity-api/receive-webhooks"},{"title":"Reconcile a subscription","href":"/investor-activity-api/reconcile-a-subscription"},{"title":"Reconcile a redemption","href":"/investor-activity-api/reconcile-a-redemption"}]},{"group":"Concepts","pages":[{"title":"Identifiers","href":"/investor-activity-api/identifiers"},{"title":"Events","href":"/investor-activity-api/events"},{"title":"Amounts","href":"/investor-activity-api/amounts"},{"title":"Errors","href":"/investor-activity-api/errors"},{"title":"Versioning","href":"/investor-activity-api/versioning"}]},{"group":"Help","pages":[{"title":"Glossary","href":"/investor-activity-api/glossary"},{"title":"Changelog","href":"/investor-activity-api/changelog"}]},{"group":"API reference","pages":[{"group":"Authentication","pages":[{"title":"Get an access token","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml post /oauth2/token","href":"/investor-activity-api/api-reference/authentication/get-an-access-token"}]},{"group":"Assets","pages":[{"title":"List your holdings","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /assets","href":"/investor-activity-api/api-reference/assets/list-your-holdings"}]},{"group":"Deposits","pages":[{"title":"List your deposits for a token","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /deposits","href":"/investor-activity-api/api-reference/deposits/list-your-deposits-for-a-token"},{"title":"Get a deposit","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /deposits/{depositId}","href":"/investor-activity-api/api-reference/deposits/get-a-deposit"}]},{"group":"Transactions","pages":[{"title":"List your transactions for a token","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /transactions","href":"/investor-activity-api/api-reference/transactions/list-your-transactions-for-a-token"},{"title":"Get a transaction","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /transactions/{transactionId}","href":"/investor-activity-api/api-reference/transactions/get-a-transaction"}]},{"group":"Webhook events","pages":[{"title":"List the webhooks sent to you","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /webhook-events","href":"/investor-activity-api/api-reference/webhook-events/list-the-webhooks-sent-to-you"},{"title":"Get one webhook by its event id","deprecated":null,"version":null,"openapi":"/investor-activity-api/openapi.yaml get /webhook-events/{eventId}","href":"/investor-activity-api/api-reference/webhook-events/get-one-webhook-by-its-event-id"}]},{"group":"Webhooks","pages":[{"title":"A cash movement was recorded","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.deposit.processed","href":"/investor-activity-api/api-reference/webhooks/a-cash-movement-was-recorded"},{"title":"Tokens were issued to you","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.minting.completed","href":"/investor-activity-api/api-reference/webhooks/tokens-were-issued-to-you"},{"title":"A token transaction was recorded","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.transaction.processed","href":"/investor-activity-api/api-reference/webhooks/a-token-transaction-was-recorded"},{"title":"A redemption request was recorded","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.redemption.pending","href":"/investor-activity-api/api-reference/webhooks/a-redemption-request-was-recorded"},{"title":"A redemption was approved","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.redemption.confirmed","href":"/investor-activity-api/api-reference/webhooks/a-redemption-was-approved"},{"title":"A redemption payout was sent","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.payout.initiated","href":"/investor-activity-api/api-reference/webhooks/a-redemption-payout-was-sent"},{"title":"A payout was completed","version":null,"deprecated":null,"openapi":"/investor-activity-api/openapi.yaml webhook investor.payout.completed","href":"/investor-activity-api/api-reference/webhooks/a-payout-was-completed"}]}]}]}]},{"tab":"Build with AI","icon":"sparkles","pages":[{"title":"Build with AI","href":"/build-with-ai"}]}]},"basePath":"","title":"Onboard an individual - Securitize Developers","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}