Skip to main content
POST
Add associated individual to business application

Authorizations

X-Application-Token
string
header
required

Application-specific token for public URL access. Generated when a customer is created. Provides access to a single application without requiring an API key. Token is valid for 90 days and rate-limited to 250 requests per hour.

Headers

x-idempotency-key
string<uuid>
required

Unique key (UUID) to ensure request idempotency on POST, PUT and PATCH requests.

A key is scoped to your client, the HTTP method and the path, and is remembered for 24 hours after a successful (below 400) response. Repeating the same request (same JSON body, whatever the key order or whitespace) with the same key within that window returns the original response with X-Idempotent-Replayed: true instead of executing the request again. Using the same key on the same endpoint with a different body returns 422 with problem type idempotency-key-reused; the request is not executed. Error responses (4xx and 5xx) are not remembered, so a request refused for a fixable reason can be corrected and retried under the same key. Request bodies that are not JSON (for example file uploads) are not compared.

Path Parameters

application_id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

Body

application/json

An individual person (used for both business associated persons and standalone individual applications).

Several fields are required for one role and refused for another, so they cannot be listed in required. employment_status is required when roles is [individual] and rejected with 400 for any other role; purpose_of_account and source_of_wealth are needed for [individual] before the application can be submitted. title is required for ubo and control_person and rejected for individual. See PUT /applications/{application_id}/individual-details for the full table.

roles
enum<string>[]
required

Role(s) of this person (individual cannot be combined with other types)

Minimum array length: 1
Available options:
ubo,
control_person,
applicant,
individual
Example:
name
object
required

Full name of a person

date_of_birth
string<date>
required

Date of birth (ISO 8601 format, person must be at least 18 years old)

Example:

"1985-06-15"

nationalities
string[]
required

ISO 3166-1 alpha-2 country codes for nationalities

Minimum array length: 1
Required string length: 2
Example:
address
Address · object
required

Standardized physical address format used throughout the Dakota platform for user and entity addresses.

email_address
string<email>
required

Email address (cannot use example or test domains)

Example:

"john.doe@acme.com"

title
enum<string>

Job title (required for UBO/control person, optional for applicant, invalid for individual)

Available options:
ceo,
coo,
cfo,
cto,
cco,
director,
other_officer
Example:

"ceo"

employment_status
enum<string>

Employment status. Required when roles is [individual]. Must be omitted for every other role (ubo, control_person, applicant): a request that sends it for those roles is rejected with 400.

Available options:
employed,
self_employed,
unemployed,
student,
retired
Example:

"employed"

ownership_percentage
number<double>

Ownership percentage (required for UBO role, optional for others, must be > 0 and <= 100)

Required range: 0.01 <= x <= 100
Example:

25.5

ssn
string

Social Security Number (required for US persons, format: XXX-XX-XXXX). On an update, leave it out to keep the SSN already on file, for example one imported from a share token.

Pattern: ^\d{3}-\d{2}-\d{4}$
Example:

"123-45-6789"

phone_number
string

Mobile phone number (optional). Card security codes are sent to it, so it must be current. Spaces, dashes, dots and brackets are accepted and removed; the number is stored and returned in E.164 format (a plus sign and 8 to 15 digits, for example +14155550123). The country code is required: a number without + and a country code is rejected with 400. A number under +1 (North America) must have exactly 10 digits after the +1, and its area code and exchange cannot start with 0 or 1; otherwise it is rejected with 400. Leave it out (or send an empty string) to keep the number already on file, but only while the request still describes the same person: the same first name, last name and date of birth (case and surrounding spaces are ignored). If the name or the date of birth changes, the stored number is not carried over: it is cleared, and the response carries a phone_number entry in warnings, so send the number again. Otherwise a phone number cannot be cleared through the API. A request without a phone number succeeds and the response carries a phone_number entry in warnings.

Example:

"+14155550123"

purpose_of_account
enum<string>[]

Intended purposes for the account (required when roles includes 'individual')

Minimum array length: 1
Available options:
investing,
sending_and_receiving_payments,
storage_of_funds_or_digital_assets,
making_online_payments,
trading_on_other_platforms
Example:
source_of_wealth
enum<string>[]

Sources of wealth (required when roles includes 'individual')

Minimum array length: 1
Available options:
investments,
employment,
court_settlement,
lottery_winnings,
retirement_income,
savings,
sale_of_assets,
family_funds,
gambling_winnings,
gift,
inheritance,
insurance_claim,
loan,
redundancy_severance,
benefits
Example:

Response

Individual added successfully

id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

warnings
object[]

Non-blocking findings about the saved data. The request succeeded; the listed fields are optional today and may become required. Omitted when there are none.