Skip to main content
POST
Create an entity investor

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials. Exchange the client id and secret Securitize issued you for a bearer token at the token URL (the host root, not under the base URL), with grant_type=client_credentials; the token lasts 2 hours and goes in the Authorization: Bearer header of every request. No scope is needed. The token identifies your partner account, so you never send a partner id, and every record you create is scoped to you.

Body

application/json

The company being onboarded. The same body creates it and, on PUT, replaces it in full: an optional field you omit on PUT is cleared.

externalInvestorId
string
required

Your own id for this company, unique within your partner account. Fixed at create: on PUT send the same value.

Pattern: ^[A-Za-z0-9._-]{1,128}$
Example:

"ent-test-0001"

investorType
enum<string>
required

Always entity on this route.

Available options:
entity
entityName
string
required

Registered legal name. This is what sanctions and PEP screening run against.

Required string length: 1 - 255
entityIdNumber
string
required

Registration or tax identifier of the company as a legal person. With address.countryCode it identifies the company. Stored trimmed and upper-cased. Placeholder values (000000000, 123456789, TEST, N/A, one repeated character, fewer than 4 characters) are refused with 400 validation_error, with or without separators (spaces, dots, dashes, slashes).

Required string length: 1 - 128
Example:

"39-8873890"

email
string<email>
required

Contact email of the company. ASCII local part only. Unique across Securitize: an address that belongs to another investor answers 409 email_conflict. Fixed at create: on PUT send the same value.

phone
object
required

Contact phone of the company.

address
object
required

Registered address. countryCode together with entityIdNumber identifies the company.

entityType
enum<string>

Legal form of the company.

Available options:
revocable-trust,
irrevocable-trust,
limited-partnership/general-partnership,
joint-account,
non-profit-foundation,
for-profit-foundation,
fund,
llc,
corporation,
other
incorporationDate
string<date>

Date of incorporation, YYYY-MM-DD. Returned as a timestamp.

Example:

"2015-06-30"

Response

The company is already registered with Securitize and another party leads the verification. Store investorId; status is its current one. You can read its status and manage its wallets, token whitelisting, suitability and DLT test; every other operation on it answers 409 investor_not_owned.

An investor already registered with Securitize whose verification another party leads. You have limited access: you can read its status and manage its wallets, token whitelisting, suitability and DLT test; every other operation on it answers 409 investor_not_owned.

investorId
string
required

Securitize's id for this investor in your partner account. Store it.

Minimum string length: 1
Example:

"6aca84e5dc49fe8369dd1da4"

externalInvestorId
string
required

Your own id, as sent at create.

Pattern: ^[A-Za-z0-9._-]{1,128}$
Example:

"ent-test-0001"

status
enum<string>
required

The investor's verification state.

  • none — created, nothing under review. An investor stays here until you submit it.
  • processing — under review.
  • verified — verified.
  • manual-review — a Securitize operator is reviewing it. Not a rejection.
  • updates-required — Securitize needs updated information; contact Securitize support.
  • expired — the verification lapsed; contact Securitize support.
  • rejected — final.

When status becomes verified — at submit, or after Securitize's screening and compliance review — depends on your agreement with Securitize. Treat any value you do not recognise as "not verified" rather than failing.

Available options:
none,
processing,
verified,
manual-review,
updates-required,
expired,
rejected