Creating Beneficial Owners
How to create a Beneficial Owner and how to add their details to the system.
A business must have one or more Beneficial Owners. To add a Beneficial Owner to a Business, use the POST /businesses/{business_id}/beneficial_owners
operation and provide parameters as shown in the table below.
Parameter | Type (* Required) | Description |
---|---|---|
dob required | string | Date of birth in YYYY-MM-DD format, for example 1978-06-20 . |
first_name required | string | First name, between 1 and 20 characters. Must start with a letter and can only contain letters, spaces, and apostrophes. |
middle_name | string | Middle name, between 1 and 20 characters. Must start with a letter and can only contain letters, spaces, and apostrophes. |
last_name required | string | Last name, between 2 and 20 characters. Must start with a letter and can only contain letters, spaces, and apostrophes. |
addresses partially required | array | One or more official addresses, see table below. |
The addresses
array within business_id
has the following structure.
address Object | Type | Description |
---|---|---|
address_type required | string | Either MAILING or PHYSICAL . |
street required | string | Freeform name between 1 and 40 characters. May contain only alphanumeric and these special characters . , _ - # |
street2 | string | Freeform name, maximum 40 characters. |
city required | string | Freeform name between 2 and 20 characters. |
state required | string | Two-character US state code. Non-US state code maximum 20 characters. |
zip_code required | string | Five-digit US zip code, (for example 12345) or nine-digit US zip code, (for example 12345-1234). Non-US state code between 2 and 20 characters. |
country required | string | ISO 3166-1 alpha-2 country code, maximum two characters. |
is_primary required | boolean | Is this the primary address; either true or false . |
An example of a request to create a Beneficial Owner of a business is shown in the example below.
curl --request POST \
--url https://sandbox.bond.tech/api/v0/businesses/96df8579-5d05-4e3e-a5e3-e61e3a5bdb38/beneficial_owners \
--header 'Authorization: YOUR-AUTHORIZATION' \
--header 'Content-Type: application/json' \
--header 'Identity: YOUR-IDENTITY' \
--data '
{
"addresses": [
{
"address_type": "PHYSICAL",
"street": "5 California Ave.",
"street2": "Suit 770",
"city": "San Francisco",
"state": "CA",
"zip_code": "12345-1234",
"country": "US",
"is_primary": true
}
],
"dob": "1992-03-23",
"first_name": "Boris",
"middle_name": "Jim",
"last_name": "Pasakovitch"
}
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://sandbox.bond.tech/api/v0/businesses/96df8579-5d05-4e3e-a5e3-e61e3a5bdb38/beneficial_owners")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Identity"] = 'YOUR-IDENTITY'
request["Authorization"] = 'YOUR-AUTHORIZATION'
request.body = "{\"addresses\":[{\"address_type\":\"PHYSICAL\",\"street\":\"5 California Ave.\",\"street2\":\"Suit 770\",\"city\":\"San Francisco\",\"state\":\"CA\",\"zip_code\":\"12345-1234\",\"country\":\"US\",\"is_primary\":true}],\"dob\":\"1992-03-23\",\"first_name\":\"Boris\",\"middle_name\":\"Jim\",\"last_name\":\"Pasakovitch\"}"
response = http.request(request)
puts response.read_body
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Identity: 'YOUR-IDENTITY',
Authorization: 'YOUR-AUTHORIZATION'
},
body: JSON.stringify({
addresses: [
{
address_type: 'PHYSICAL',
street: '5 California Ave.',
street2: 'Suit 770',
city: 'San Francisco',
state: 'CA',
zip_code: '12345-1234',
country: 'US',
is_primary: true
}
],
dob: '1992-03-23',
first_name: 'Boris',
middle_name: 'Jim',
last_name: 'Pasakovitch'
})
};
fetch('https://sandbox.bond.tech/api/v0/businesses/96df8579-5d05-4e3e-a5e3-e61e3a5bdb38/beneficial_owners', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
import requests
url = "https://sandbox.bond.tech/api/v0/businesses/96df8579-5d05-4e3e-a5e3-e61e3a5bdb38/beneficial_owners"
payload = {
"addresses": [
{
"address_type": "PHYSICAL",
"street": "5 California Ave.",
"street2": "Suit 770",
"city": "San Francisco",
"state": "CA",
"zip_code": "12345-1234",
"country": "US",
"is_primary": True
}
],
"dob": "1992-03-23",
"first_name": "Boris",
"middle_name": "Jim",
"last_name": "Pasakovitch"
}
headers = {
"Content-Type": "application/json",
"Identity": "YOUR-IDENTITY",
"Authorization": "YOUR-AUTHORIZATION"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
var client = new RestClient("https://sandbox.bond.tech/api/v0/businesses/96df8579-5d05-4e3e-a5e3-e61e3a5bdb38/beneficial_owners");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Identity", "YOUR-IDENTITY");
request.AddHeader("Authorization", "YOUR-AUTHORIZATION");
request.AddParameter("application/json", "{\"addresses\":[{\"address_type\":\"PHYSICAL\",\"street\":\"5 California Ave.\",\"street2\":\"Suit 770\",\"city\":\"San Francisco\",\"state\":\"CA\",\"zip_code\":\"12345-1234\",\"country\":\"US\",\"is_primary\":true}],\"dob\":\"1992-03-23\",\"first_name\":\"Boris\",\"middle_name\":\"Jim\",\"last_name\":\"Pasakovitch\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"addresses\":[{\"address_type\":\"PHYSICAL\",\"street\":\"5 California Ave.\",\"street2\":\"Suit 770\",\"city\":\"San Francisco\",\"state\":\"CA\",\"zip_code\":\"12345-1234\",\"country\":\"US\",\"is_primary\":true}],\"dob\":\"1992-03-23\",\"first_name\":\"Boris\",\"middle_name\":\"Jim\",\"last_name\":\"Pasakovitch\"}");
Request request = new Request.Builder()
.url("https://sandbox.bond.tech/api/v0/businesses/96df8579-5d05-4e3e-a5e3-e61e3a5bdb38/beneficial_owners")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Identity", "YOUR-IDENTITY")
.addHeader("Authorization", "YOUR-AUTHORIZATION")
.build();
Response response = client.newCall(request).execute();
A successful response contains all the information related to the new Beneficial Owner in a JSON file. It also includes a beneficial_owner_id
which is the unique Bond Studio identifier for the Beneficial Owner that must be provided in API calls, such as when initiating a KYC request.
An example of a response to a successful request to add a Beneficial Owner is shown below.
{
"beneficial_owner_id": "12345678-5d05-4562-a5e3-e61e12345678",
"first_name": "William",
"last_name": "Pasakovitch",
"date_created": "2021-05-24T14:15:22Z",
"dob": "1999-10-10",
"address": [
{
"date_created":"2021-05-24T14:15:22Z",
"address_id": "12374791-5d05-4e3e-a5e3-e61e3817622134",
"address_type": "PHYSICAL",
"street": "770 California St.",
"street2": "Suit 333",
"city": "San Francisco",
"state": "CA",
"zip_code": "94104-2657",
"country": "US",
"is_primary": true,
"deliverability": "deliverable"
}
]
}
For a complete specification and interactive examples, see Creating a Beneficial Owner in the Bond API Reference.
To manage Beneficial Owners, see Managing Beneficial Owners.
Trying to add a Beneficial Owner with a missing field
If you try to add a Beneficial Owner with a missing field, you receive a JSON response similar to that shown below.
{
'Message': "{'last_name': ['Missing data for required field.']}",
'Status': 400,
'Code': 'create_beneficial_owner_schema',
'Type': 'Request Error'
}
Updated over 2 years ago