curl --request POST \
--url https://partners-api.sandbox.securitize.io/investors/v1/onboarding-reliance/investors/{investorId}/key-parties/individual \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalKeyPartyId": "ubo-test-0001",
"signerType": "individual",
"isBeneficialOwner": true,
"firstName": "Test_Jane_UBO",
"lastName": "KYC_Sandbox",
"dateOfBirth": "1990-04-12",
"birthCountry": "US",
"email": "kyc.sandbox+ubo0001@test.invalid",
"phone": {
"code": "1",
"number": "5550000002"
},
"address": {
"street": "Test Street",
"city": "New York",
"state": "NY",
"countryCode": "US",
"postalCode": "10001"
},
"uboOwning": "25+",
"isLegalSigner": true
}
'{
"keyPartyId": "6aca84e7dc49fe8369dd1dab",
"externalKeyPartyId": "ubo-test-0001",
"investorId": "6aca84e5dc49fe8369dd1da4",
"signerType": "individual",
"uboOwning": "25+",
"isBeneficialOwner": true,
"isLegalSigner": true,
"details": {
"firstName": "Test_Jane_UBO",
"lastName": "KYC_Sandbox",
"dateOfBirth": "1990-04-12T00:00:00.000Z",
"birthCountry": "US",
"email": "kyc.sandbox+ubo0001@test.invalid",
"address": {
"street": "Test Street",
"city": "New York",
"state": "NY",
"countryCode": "US",
"postalCode": "10001"
}
}
}Add a person key party
Declares a natural person the entity is verified through: a beneficial owner, a shareholder, a legal signer. Call it once per person, after the entity create. Returns keyPartyId — the document, correction and list paths take it, so store it.
isBeneficialOwner is not a label: true declares the person a beneficial owner (UBO), false a shareholder, and the company’s beneficial-owner check resolves through its UBOs. It is required; there is no safe default.
A key party has no status of its own and is never verified on its own. Adding one does not start anything, and neither do its documents: the entity is verified when you submit it with all of its key parties. Next: upload this person’s identity document with POST /investors/{investorId}/key-parties/{keyPartyId}/documents.
A key party that is itself a company goes to POST /investors/{investorId}/key-parties/entity.
Repeatable with the same body. Sending the same create again — the same externalKeyPartyId and data as last stored — answers 201 with the same keyPartyId, and finishes a registration that a 502 left incomplete. A different body for an externalKeyPartyId already used on this entity answers 409 external_key_party_id_conflict with the existing keyPartyId in details: correct it with PUT instead.
curl --request POST \
--url https://partners-api.sandbox.securitize.io/investors/v1/onboarding-reliance/investors/{investorId}/key-parties/individual \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalKeyPartyId": "ubo-test-0001",
"signerType": "individual",
"isBeneficialOwner": true,
"firstName": "Test_Jane_UBO",
"lastName": "KYC_Sandbox",
"dateOfBirth": "1990-04-12",
"birthCountry": "US",
"email": "kyc.sandbox+ubo0001@test.invalid",
"phone": {
"code": "1",
"number": "5550000002"
},
"address": {
"street": "Test Street",
"city": "New York",
"state": "NY",
"countryCode": "US",
"postalCode": "10001"
},
"uboOwning": "25+",
"isLegalSigner": true
}
'{
"keyPartyId": "6aca84e7dc49fe8369dd1dab",
"externalKeyPartyId": "ubo-test-0001",
"investorId": "6aca84e5dc49fe8369dd1da4",
"signerType": "individual",
"uboOwning": "25+",
"isBeneficialOwner": true,
"isLegalSigner": true,
"details": {
"firstName": "Test_Jane_UBO",
"lastName": "KYC_Sandbox",
"dateOfBirth": "1990-04-12T00:00:00.000Z",
"birthCountry": "US",
"email": "kyc.sandbox+ubo0001@test.invalid",
"address": {
"street": "Test Street",
"city": "New York",
"state": "NY",
"countryCode": "US",
"postalCode": "10001"
}
}
}Authorizations
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.
Path Parameters
Body
A natural person the entity is verified through. The same body creates the key party and, on PUT, replaces it in full: an optional field you omit on PUT is cleared.
true declares the person a beneficial owner (UBO), false a shareholder. Declare at least one person as a beneficial owner. A company whose people are all shareholders is refused at verification: submit answers 200 with status: incomplete and the company failed, the people already sent stay locked, and the company's status can read processing until you add a beneficial owner and submit again.
Response
Recorded, or the same create repeated. Nothing is under review. gender and phone are accepted but not echoed.
A person key party. It has no status: a key party is never verified on its own, only with its entity at submit.